Cod sursa(job #849665)
Utilizator | Barcau Emanuel Barcau_Emanuel | Data | 7 ianuarie 2013 14:48:17 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include<fstream>
using namespace std;
long long int n,a[6000000],i,ic,sc,pc,sf,max1;
int main ()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
max1=-20000000;
sc=-1;
ic=0; sf=0;
pc=0;
for(i=n-1;i>=1;i--)
{
if(sc>=0) { sc=sc+a[i]; }
else { sc=a[i]; pc=i; }
if(sc>max1) {max1=sc; ic=pc; sf=i; }
}
g<<max1<<" "<<sf<<" "<<ic;
}