Cod sursa(job #1138281)
| Utilizator | Data | 9 martie 2014 20:48:08 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
using namespace std;
#define NMax 6000001
#define inf 2100000000
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,v[NMax],best[NMax],pr[NMax],mx,p;
int main()
{
int i;
best[0]=-inf;
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
if(v[i]>best[i-1]+v[i]) {pr[i]=i;best[i]=v[i];}
else {pr[i]=pr[i-1];best[i]=best[i-1]+v[i];}
if(best[i]>mx) {mx=best[i];p=i;}
}
g<<mx<<" "<<pr[p]<<" "<<p<<"\n";
f.close();
g.close();
return 0;
}
