Cod sursa(job #1070034)
Utilizator | Data | 30 decembrie 2013 21:25:04 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include <cstdio>
using namespace std;
int main()
{
int n,i;
int s=1,d=1,best=-2000000000,m,act=-2000000000;
FILE * fin;
FILE * fout;
fin = fopen("ssm.in", "r");
fout = fopen("ssm.out", "w");
fscanf(fin, "%d", &n);
for(i=1; i<=n; i++)
{
fscanf(fin, "%d", &m);
if(m > act+m) { act=m; s=i; d=i; }
else { act+=m; d++; }
if(act>best) best=act;
//printf("%d%c%d%c", s, ' ', d, '\n');
}
fprintf(fout, "%d%c%d%c%d%c", best, ' ', s, ' ', d, '\n');
fclose(fin); fclose(fout);
return 0;
}