Cod sursa(job #1876284)
| Utilizator | Data | 12 februarie 2017 11:03:18 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include <iostream>
#include <fstream>
#define INF ((1 << 31) - 1)
using namespace std;
int main()
{
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int n;
cin >> n;
int st, dr;
int smax = -INF;
int poz_min = 0;
int sum = 0;
int minn = 0;
for (int i = 0; i < n; ++i){
int x;
cin >> x;
sum += x;
if (sum < minn) {
minn = sum;
poz_min = i;
}
if (sum - minn > smax){
smax = sum - minn;
st = poz_min + 1;
dr = i;
}
}
cout << smax << ' ' << st + 1 << ' ' << dr + 1 << '\n';
return 0;
}
