Cod sursa(job #1550900)
| Utilizator | Data | 14 decembrie 2015 21:10:46 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <fstream>
using namespace std;
ofstream out("ssm.out");
ifstream in("ssm.in");
int v[6000001], s[6000001];
int main()
{
int n, min = 0, max = -2147483648, start = 1, stop;
in >> n;
for(int i = 1; i <= n; i++)
{
in >> v[i];
s[i] = s[i-1] + v[i];
if(s[i-1] < s[min]) min = i-1;
if(s[i] - s[min] > max)
{
max = s[i] - s[min];
start = min+1;
stop = i;
}
}
out << max << " " << start << " " << stop;
return 0;
}
