Cod sursa(job #553519)
| Utilizator | Data | 14 martie 2011 09:36:56 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
# include <fstream>
# define MAXN 6000000
using namespace std;
int sum, bestSum = -1999999999, i, N, p1, p2, m1, cit, mn = 2000000000;
int s[MAXN];
int main(){
ifstream f ("ssm.in"); ofstream g ("ssm.out");
f >> N;
for (i = 1; i <= N; i++){
f >> cit;
s[i] = s[i - 1] + cit;
}
for (i = 1; i <= N; i++){
if (bestSum < s[i] - mn){
bestSum = s[i] - mn;
p1 = m1;
p2 = i;
}
if (mn > s[i]){
mn = s[i];
m1 = i;
}
}
g << bestSum << ' ' << p1 + 1 << ' ' << p2 << '\n';
return 0;
}
