Pagini recente » Cod sursa (job #2482316) | Cod sursa (job #1768444) | Cod sursa (job #192641) | Cod sursa (job #337846) | Cod sursa (job #270918)
Cod sursa(job #270918)
#include<stdio.h>
int poz1,poz2,lung1,lung2,i,v[20010],n,semn,lung;
long s1,s,s2,smax=2000000000,S;
int main()
{
FILE*f=fopen("buline.in","r");
FILE*g=fopen("buline.out","w");
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
{
fscanf(f,"%d %d",&v[i],&semn);
if (semn==0) v[i]=v[i]*(-1);
if (s+v[i]<=v[i])
{
lung++;
s=s+v[i];
}
else {
lung=1;
s=v[i];
}
if (smax<=s) ;
else
{
poz1=i;
lung1=lung;
smax=s;
}
S+=v[i];
}
poz1+=1;
if (poz1>n)
poz1=poz1-n;
s1=S-smax;
lung1=n-lung1;
smax=-2000000000;
s=-2000000000;
lung=0;
for (i=1;i<=n;i++)
{
if (s+v[i]>=v[i])
{
lung++;
s=s+v[i];
}
else {
lung=1;
s=v[i];
}
if (smax>s) ;
else
{poz2=i;
lung2=lung;
smax=s;
}
}
s2=smax;
poz2=poz2-lung2+1;
if(s1>s2)
fprintf(g,"%ld %d %d",s1,poz1,lung1);
else
fprintf(g,"%ld %d %d",s2,poz2,lung2);
fclose(f);
fclose(g);
return 0;
}