Cod sursa(job #2143369)
Utilizator | Data | 25 februarie 2018 21:06:36 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#define MAXN 7000010
using namespace std;
ifstream cin ("ssm.in");
ofstream cout ("ssm.out");
int N, Sol, p1, p2;
int A[MAXN];
int main()
{
int i, S = 0, last = 1;
cin>>N;
for (i = 1; i <= N; i++) cin>>A[i];
for (i = 1; i <= N; i++)
{
if (S < 0)
{
S = A[i];
last = i;
}
else S += A[i];
if (S > Sol)
{
Sol = S;
p2 = i;
p1 = last;
}
}
cout<<Sol<<' '<<p1<<' '<<p2;
}