Cod sursa(job #270877)

Utilizator dexter_dexMutascu Adrian - Dragos dexter_dex Data 4 martie 2009 18:04:21
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#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;
}