Pagini recente » Cod sursa (job #859452) | Cod sursa (job #297395) | Cod sursa (job #2559540) | Cod sursa (job #1460423) | Cod sursa (job #2794905)
#include <cstdio>
#include <climits>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include<bitset>
#include <map>
#include <cstring>
#include<algorithm>
using namespace std;
int n,sum;
int sMax, stMax, drMax;
FILE* fin, * fout;
int main()
{
fin = fopen("ssm.in", "r");
fout = fopen("ssm.out", "w");
fscanf(fin, "%d", &n);
fscanf(fin, "%d", &sum);
int st = 1, dr = 1;
sMax = sum, drMax = dr, stMax = st;
for (int i = 2; i <= n; i++)
{
int x;
fscanf(fin, "%d", &x);
if (sum + x < x)
{
//schimb
st = i;
dr = i;
sum = x;
if (sum > sMax) {
stMax = st;
drMax = dr;
sMax = sum;
}
else if (sum == sMax && dr - st < drMax - stMax)
{
stMax = st;
drMax = dr;
}
}
else {
sum += x;
dr = i;
if (sum > sMax) {
stMax = st;
drMax = dr;
sMax = sum;
}
else if (sum == sMax && dr - st < drMax - stMax)
{
stMax = st;
drMax = dr;
}
}
}
fprintf(fout, "%d %d %d", sMax, stMax, drMax);
return 0;
}