Một bài nào đó từ fb

30/01/2023
Code
#include <bits/stdc++.h>
using namespace std;

long long max(long long a, long long b){
	if (a > b) return a;
	else return b;
}

int main(){
	int n,m;
	cin >> n >> m;
	int a[n+1];
	for (int i=1;i<= n;i++) cin >> a[i];
	int dem=m;
	long long tmp_s=0;
	long long s=-1;
	long long res=-1;
	while (dem*2 >= m){
		tmp_s = 0;
//		cout << dem << endl;
		for (int i=1;i<= dem;i++) tmp_s+= a[i];
		for (int i=n;i > n-m+dem;i--) tmp_s+= a[i];
		s = max(s, tmp_s);
//		cout << tmp_s << ' ';
		tmp_s = 0;
		for (int i=n;i > n-dem;i--) tmp_s += a[i];
		for (int i=1;i <= m-dem;i++) tmp_s += a[i];
		s = max(s, tmp_s);
//		cout << tmp_s << endl;
		res=max(res, s);
		dem--;
	}
	cout << res;
//test
//8 4
//4 1 5 5 2 2 7 1
	return 0;
}