Logo Wy Online Judge

WyOJ

Paste!

#include <bitset>
#include <cstdint>
#include <iostream>

int main() {
	using namespace std;
	int n;
	cin >> n;
	auto arr = new int[n];
	for(int i = 0; i < n; i++)
		cin >> arr[i];
	bitset<200000> dp;
	dp[0] = dp[arr[0]] = 1;
	int64_t value = arr[0], ans = arr[0];
	for(int i = 1; i < n; i++)
	{
		dp |= dp << arr[i];
		value += arr[i];
		if(dp[i])
		{
			ans = max(ans, value - i);
			dp[i] = false;
		}
	}
	cout << ans << endl;
	delete[] arr;
	return 0;
}