Pagini recente » Cod sursa (job #2176414) | Cod sursa (job #1196550) | Cod sursa (job #2318110) | Monitorul de evaluare | Cod sursa (job #1335967)
#include <cstdio>
using namespace std;
int main()
{
int i, n;
FILE*fin=fopen ("ssm.in", "r");
fscanf(fin, "%d", &n);
int spart=0, smin=999999999, pozmin, val;
int solmax=-999999999, start, finish;
for (i=1; i<=n; ++i)
{
fscanf(fin, "%d", &val);
spart+=val;
if (spart>solmax)
{
solmax=spart;
start=1; finish=i;
}
if (spart-smin>solmax)
{
solmax=spart-smin;
start=pozmin+1;
finish=i;
}
if (spart<smin)
{
smin=spart;
pozmin=i;//pozitia ultimului element care formeaza suma partiala minima pana la pozitia i
}
}
FILE*fout=fopen ("ssm.out", "w");
fprintf(fout, "%d %d %d\n", solmax, start, finish);
fclose(fout);
return 0;
}