Cod sursa(job #1861374)
Utilizator | Data | 28 ianuarie 2017 20:20:54 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
#define DM 6000000
using namespace std;
ifstream fi ("ssm.in");
ofstream fo ("ssm.out");
int n, a, s[DM], mn;
pair <int, pair <int, int> > mx;
int main()
{
fi >> n >> a;
s[0] = a;
for (int i = 1; i < n; ++i)
{
fi >> a;
s[i] = s[i-1] + a;
if (s[i] - s[mn] > mx.first)
{
mx.first = s[i] - s[mn];
mx.second.first = i;
mx.second.second = mn;
}
if (s[i] < s[mn])
mn = i;
}
fo << mx.first << ' ' << mx.second.second + 2 << ' ' << mx.second.first + 1;
return 0;
}
/*
*/