Cod sursa(job #767251)
| Utilizator | Data | 13 iulie 2012 00:52:46 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<fstream>
#include<values.h>
using namespace std;
int s[6000001],b[6000001];
int main()
{
ifstream fcin("ssm.in");
ofstream fcout("ssm.out");
int n,i,min=0,max=-INT_MAX,inceput=0,sfarsit;
fcin>>n;
for(i=1;i<=n;i++)
fcin>>s[i];
for(i=1;i<=n;i++)
s[i]+=s[i-1];
for(i=1;i<=n;i++)
{
b[i]=s[i]-min;
if(s[i]<min)
min=s[i],inceput=i+1;
}
for(i=1;i<=n;i++)
if(max<b[i])
max=b[i],sfarsit=i;
fcout<<max<<" "<<inceput<<" "<<sfarsit;
return 0;
}
