Pagini recente » Clasament eusebiu_oji_2012_10 | Cod sursa (job #3001981) | Cod sursa (job #2325133) | Cod sursa (job #3152812) | Cod sursa (job #2660858)
#include <stdio.h>
using namespace std;
int v[6000001];
int main()
{
int n;
FILE * fin = fopen("ssm.in", "r");
FILE * fout = fopen("ssm.out", "w");
fscanf(fin, "%d", &n);
for (int i=0; i<n; i++)
fscanf(fin, "%d", &v[i]);
int a, a1, s, s1=-1, smax=-2000000000, amax=0, bmax=0;
for (int i=0; i<n; i++){
s = v[i];
if (s1 > 0){
s += s1;
a = a1;
}
else {
a = i;
}
if (s > smax){
smax = s;
amax = a;
bmax = i;
}
else if (s == smax){
if (i - a < bmax - amax){
amax = a;
bmax = i;
}
}
// printf("%d %d %d %d\n", a, a1, s, s1);
s1 = s;
a1 = a;
}
fprintf (fout, "%d %d %d", smax, amax+1, bmax+1);
fclose(fin);
fclose(fout);
}