Pagini recente » Cod sursa (job #2189509) | tema | Cod sursa (job #2776900) | Cod sursa (job #3160601) | Cod sursa (job #383158)
Cod sursa(job #383158)
//
#include<stdio.h>
#include<string.h>
#define mic -20000000;
FILE *f=fopen("secv2.in","r"),*g=fopen("secv2.out","w");
long s[50005],v[50005],i,n,k,poz,nr[50005],sw,s,d,max;
void find()
{
max=mic;
for(i=1;i<=n;i++)
s[i]=max;
s[1]=v[1];
nr[1]=1;
for(i=2;i<=n;i++)
{
if(s[i-1]>0)
{
s[i]=v[i]+s[i-1];
nr[i]=nr[i-1]+1;
if (s[i]>max && nr[i]>(s-d+1))
{
max = s[i];
s = i;
d = i - nr[i]+1;
}
}
else
{
s[i]=v[i];
nr[i]=1;
if(s[i]>max&&nr[i]>(s-d+1))
{
max = s[i];
s = i;
d = i - nr[i]+1;
}
}
}
}
int main()
{
int i;
fscanf(f,"%ld",&n);
fscanf(f,"%ld",&k);
for(i=1;i<=n;i++)
fscanf(f,"%ld", &v[i]);
find();
if(max==mic)
{
sw=1;
for(i=1;i<=n;i++)
v[i]=v[i]*-1;
find();
}
if(sw==0)
fprintf(g,"%ld %ld %ld",d,s, max);
else
fprintf(g,"%ld %ld %ld",d,s, -max);
fclose(g);
return 0;
}