View Code of Problem 4066

#include <iostream>
#include <string>
#include <algorithm>
#include <iomanip>
#include <vector>
#include <cmath>
#include<cstring>
using namespace std;
//int dp[10000000];
//int a[10000000];
int main()
{
	long long n;
	cin >> n;
	vector<int>a;
	vector<int>dp;
	for (long long i = 0;i < n;i++)
	{
		int z;
		cin >> z;
		a.push_back(z);
	}
	int num;
	if (a[0] > 0)
		num = a[0];
	else
		num = 0;
	dp.push_back(num);
	int max = -1;
	for (long long i = 1;i < n;i++)
	{
		int z;
		//cin >> a[i];
		if (a[i] > 0)
			z = dp[i - 1] + a[i];
		else if (a[i] + dp[i - 1] > 0)
			z = a[i] + dp[i - 1];
		else if (a[i] + dp[i - 1] < 0)
			z = 0;
		if (z > max)
			max = z;
		dp.push_back(z);
	}
	cout << max;
}

Double click to view unformatted code.


Back to problem 4066