Pagini recente » Cod sursa (job #163120) | Cod sursa (job #1796410) | Cod sursa (job #2931396) | Cod sursa (job #195711) | Cod sursa (job #383161)
Cod sursa(job #383161)
//
#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,d,max,ss;
void findd()
{
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]>(ss-d+1))
{
max = s[i];
ss = i;
d = i - nr[i]+1;
}
}
else
{
s[i]=v[i];
nr[i]=1;
if(s[i]>max&&nr[i]>(ss-d+1))
{
max = s[i];
ss = i;
d = i - nr[i]+1;
}
}
}
}
int main()
{
fscanf(f,"%ld",&n);
fscanf(f,"%ld",&k);
for(i=1;i<=n;i++)
fscanf(f,"%ld", &v[i]);
findd();
if(max==mic)
{
sw=1;
for(i=1;i<=n;i++)
v[i]=-v[i];
findd();
}
if(sw==0)
fprintf(g,"%ld %ld %ld",d,ss, max);
else
fprintf(g,"%ld %ld %ld",d,ss, -max);
fclose(f);
fclose(g);
return 0;
}