Cod sursa(job #1816256)
| Utilizator | Data | 26 noiembrie 2016 12:02:45 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include<stdio.h>
int main (){
FILE *in,*out;
in = fopen ("ssm.in","r");
out = fopen ("ssm.out","w");
int n,i,maxim,inc,sf,start,fin,nr,a;
fscanf(in,"%d",&n);//6 000 000
//5 -6 3 4 -2 3 -3
fscanf(in,"%d",&nr);
maxim = nr;start = fin = 1;inc = sf = 1;
for (i=2;i<=n;i++){
fscanf(in,"%d",&a);
if (nr + a > a)
nr = nr+a;
else {
nr = a;
inc = i;
}
sf = i;
if (maxim < nr){
maxim = nr;
start = inc;fin = sf;
}
}
fprintf (out,"%d %d %d",maxim,start,fin);
fclose (in);
fclose (out);
return 0;
}
