Cod sursa(job #1972706)
| Utilizator | Data | 23 aprilie 2017 15:32:29 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n, i, a, sum, lg, sMax=1<<31, Min=2147000000, pMin, st, dr;
int main() {
f>>n;
for (i=1; i<=n; i++) {
f>>a;
sum+=a;
if (sum-Min>sMax)
sMax=sum-Min, st=pMin, dr=i;
else if (sum-Min==sMax and pMin<st)
st=pMin, dr=i;
else if (sum-Min==sMax and pMin==st and i-pMin<dr-st)
dr=i;
if (sum<Min)
Min=sum, pMin=i;
}
g<<sMax<<' '<<st+1<<' '<<dr;
f.close();
g.close();
return 0;
}
