Cod sursa(job #650920)
| Utilizator | Data | 19 decembrie 2011 11:19:11 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int v[6000001];
int main()
{
int i, N, sci, sti, smax, drmax,stmax;
in>>N;
for (i=1;i<=N;i++)
in>>v[i];
smax = sci = v[1];
sti = smax = drmax = 1;
for(i=2;i<=N;i++)
{
if(sci<0)
{
sti=i;
sci=v[i];
}
else sci+=v[i];
//out << "la pasul "<<i<<" am suma "<<sci<<"\n";
if(sci>smax)
{
stmax=sti;
drmax=i;
smax=sci;
}
}
out<<smax<<" "<<stmax<<" "<<drmax<<"\n";
return 0;
}
