Cod sursa(job #2075949)
Utilizator | Data | 25 noiembrie 2017 21:21:34 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
#define MaxN 200005
#define INF 2140000000
#define MOD 1999999973
using namespace std;
FILE*IN,*OUT;
int N,X,S,Max=-INF,Start=0,End=0,aS=0;
int main()
{
IN=fopen("ssm.in","r");
OUT=fopen("ssm.out","w");
fscanf(IN,"%d",&N);
int Min=0;
for(int i=1;i<=N;i++)
{
fscanf(IN,"%d",&X);
S+=X;
if(Max<S-Min)
{
Max=S-Min;
End=i;
Start=aS;
}
if(Min>S)
Min=S,aS=i+1;
}
fprintf(OUT,"%d %d %d",Max,Start,End);
return 0;
}