Cod sursa(job #1000551)
| Utilizator | Data | 23 septembrie 2013 09:57:36 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.71 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
int v[6000003];
int main()
{
FILE*in,*out;
in = fopen("ssm.in","r");
out = fopen("ssm.out","w");
int N,sc = 0,smax = 0,pc = 1,p1 = 1,p2 = 0,i;
fscanf(in,"%d", &N);
for(i = 1;i <= N;i++)
{
fscanf(in, "%d", &v[i]);
}
for(i = 1;i <= N;i++)
{
if(sc < 0)
{
//resetez sc
sc = 0;
pc = i;
p1 = i;
}
sc += v[i];
p2++;
if(sc > smax)
{
//actualizez smax
smax = sc;
pc = p2;
}
}
fprintf(out,"%d %d %d\n",smax,p1,pc);
return 0;
}
