Pagini recente » Cod sursa (job #1503623) | Cod sursa (job #2917800) | Cod sursa (job #239657) | Cod sursa (job #3210616) | Cod sursa (job #270877)
Cod sursa(job #270877)
#include<stdio.h>
int poz1,poz,lung1,lung2=0,i,v[20010],n,semn,lung;
long s=2000000000,smax=2000000000,S,sol;
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])
{
lung2++;
s=s+v[i];
}
else {
lung2=1;
s=v[i];
}
if (smax<=s) ;
else
{
poz1=i;
lung1=lung2;
smax=s;
}
S+=v[i];
}
poz=poz1+1;
semn=0;
lung=n-lung1;
sol=S-smax;
if (poz>n)
{
poz=poz-n;
semn=1;
}
s=2000000000;
smax=2000000000;
if (poz==1&&semn==1)
for (i=1;i<=lung1;i++)
{
if (s+v[i]<=v[i])
{
lung2++;
s=s+v[i];
}
else {
lung2=1;
s=v[i];
}
if (smax<=s) ;
else
{
poz1=i;
lung1=lung2;
smax=s;
}
}
if (poz1-lung1+1==1)
{sol=sol-smax;
lung=lung-lung1;
poz=poz1+1;
}
fprintf(g,"%ld %d %d",sol,poz1,lung);
fclose(f);
fclose(g);
return 0;
}