Cod sursa(job #1276269)
| Utilizator | Data | 26 noiembrie 2014 09:13:57 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <stdio.h>
#include <limits.h>
using namespace std;
int main() {
FILE *fin,*fout;
fin=fopen("ssm.in","r");
fout=fopen("ssm.out","w");
int i,n,x,smax=INT_MIN,stcur=1,drcur=0,best=0,stmax,drmax;
stmax=1;
drmax=1;
fscanf(fin,"%d",&n);
for(i=1; i<=n; i++) {
fscanf(fin,"%d",&x);
if(best+x>=x)
{
drcur=i;
best+=x;
}
else if(x>=best+x){
stcur=drcur=i;
best=x;
}
if(best>smax) {
smax=best;
stmax=stcur;
drmax=drcur;
}
}
fprintf(fout,"%d %d %d",smax,stmax,drmax);
return 0;
}
