Pagini recente » Cod sursa (job #76951) | Cod sursa (job #184963) | Cod sursa (job #338166) | Cod sursa (job #1663186) | Cod sursa (job #1128567)
#include <cstdio>
#define Nmax 6000002
using namespace std;
FILE *fi = fopen("ssm.in", "r");
FILE *fo = fopen("ssm.out", "w");
int n;
int v[Nmax];
int s[Nmax];
int max = 1<<31;
int lmin = ~(1<<31);
int p1;
int p2;
int main()
{
fscanf(fi, "%d", &n);
for (int i = 1; i<=n; i++)
{
fscanf(fi, "%d", &v[i]);
s[i] = s[i-1] + v[i];
}
for (int i = n; i > 1; i--)
for (int j = i-1; j>=1; j--)
if (max < s[i] - s[j] || (max == s[i] - s[j] && i < j) || (max == s[i] - s[j] && i == j && i-j < lmin))
{
p1 = j+1;
p2 = i;
max = s[i] - s[j];
lmin = i-j;
}
fprintf(fo, "%d %d %d\n", max, p1, p2);
return 0;
}