Cod sursa(job #1121966)
Utilizator | Nasue Diana anaid96 | Data | 25 februarie 2014 15:04:31 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include<stdio.h>
using namespace std;
FILE *in,*out;
//constante
const int oo=-(1<<30)-1;
//variabile
int n,val;
int sum,maxSum=oo;
int stanga=1;
int dreapta;
int main(void)
{
in=fopen("ssm.in","rt");
out=fopen("ssm.out","wt");
fscanf(in,"%d",&n);
for(int i=1 ; i<=n ; ++i)
{
fscanf(in,"%d",&val);
sum+=val;
if(sum > maxSum)
{
maxSum=sum;
dreapta=i;
}
if(sum<0)
{
sum=0;
stanga=i+1;
}
}
fprintf(out,"%d %d %d",maxSum,stanga,dreapta);
fclose(in);
fclose(out);
return 0;
}