Cod sursa(job #507822)
| Utilizator | Data | 6 decembrie 2010 21:27:44 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
using namespace std;
long n,i,x,sum,best,kezd,veg,kx,q;
int main() {
ifstream in("ssm.in");
ofstream out("ssm.out");
in >> n;
sum=0;
best=-(int)2e9;
kx=1;
q=0;
for (i=1;i<=n;++i) {
in >> x;
q=sum+x;
if (q>=x) sum=q;
else {
sum=x;
kx=i;
}
if (sum>best) {
best=sum;
kezd=kx;
veg=i-1;
}
}
out << best << " " << kezd << " " << veg;
in.close();
out.close();
return 0;
}