Cod sursa(job #2241493)
| Utilizator | Data | 16 septembrie 2018 09:17:20 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
#include <climits>
using namespace std;
int sum;
int n, i, x, minim, bestsum, c, d, c1;
int main () {
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
fin>>n;
bestsum=INT_MIN;
sum=0;
c=1;
for (i=1;i<=n;i++) {
fin>>x;
if (sum+x>=x) { ///este de preferat sa adaug x la suma actuala
sum+=x;
} else { ///incepem o noua subsecventa
sum=x;
c=i;
}
if (bestsum<sum) {
bestsum=sum;
d=i; c1=c;
}
}
fout<<bestsum<<" "<<c1<<" "<<d;
return 0;
}
