Cod sursa(job #2660863)
| Utilizator | Data | 20 octombrie 2020 18:40:01 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 85 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <stdio.h>
using namespace std;
int v[6000001];
int main()
{
int n;
FILE * fin = fopen("ssm.in", "r");
FILE * fout = fopen("ssm.out", "w");
fscanf(fin, "%d", &n);
for (int i=0; i<n; i++)
fscanf(fin, "%d", &v[i]);
int a, s=-1, smax=-200000000, amax=0, bmax=0;
for (int i=0; i<n; i++){
if (s > 0)
s += v[i];
else {
a = i;
s = v[i];
}
if (s > smax){
smax = s;
amax = a;
bmax = i;
}
}
fprintf (fout, "%d %d %d", smax, amax+1, bmax+1);
fclose(fin);
fclose(fout);
}
