Pagini recente » Cod sursa (job #750578) | Cod sursa (job #1073452) | Cod sursa (job #2444502) | Cod sursa (job #1360583) | Cod sursa (job #1515715)
#include <cstdio>
#define filein "ssm.in"
#define fileout "ssm.out"
#define MAX(a,b) (a>b)?a:b
using namespace std;
int v[6000001];
int s[6000001];
int st,fn,maxx;
int N;
void ReadData();
void PrintData();
int main()
{
ReadData();
register int i;
s[1]=v[1];
fn=1;
maxx=s[1];
for (i=2; i<=N; i++)
{
s[i]=MAX(s[i-1]+v[i],v[i]);
if (maxx<s[i])
{
maxx=s[i];
fn=i;
}
}
st=fn+1;
int x=maxx;
while(x!=0 || !v[st-1])
{
x-=v[st-1];
st--;
}
PrintData();
return 0;
}
void ReadData()
{
FILE *in;
in=fopen(filein,"r");
fscanf(in,"%d",&N);
register int i;
for (i=1; i<=N; i++)
fscanf(in,"%d",v+i);
fclose(in);
}
void PrintData()
{
FILE *out;
out=fopen(fileout,"w");
fprintf(out,"%d %d %d",maxx,st,fn);
fclose(out);
}