Cod sursa(job #216458)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 24 octombrie 2008 17:29:10
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>

int n,a[10001],inceput,lung,Smax;

int main()
{
 freopen("buline.in","r",stdin);
 freopen("buline.out","w",stdout);
 int v;
 scanf("%d",&n);
 for(int i=1;i<=n;i++)
   {
    scanf("%d %d",&a[i],&v);
    a[i+n]=a[i];
    if(v==0)
      {a[i]=a[i]*(-1);
       a[i+n]=a[i];
       }
    }
 int Smax=-11919;
 for(int i=1;i<=n;i++)
   {int s=0;
   for(int j=i;j<n+i;j++)
      {
       s=s+a[j];
       if(s>Smax)
	{
	 Smax=s;
	 inceput=i;
	 lung=j-i+1;
	}
       else
	if(s==Smax&&inceput>i)
	 {
	  inceput=i;
	  lung=j-i+1;
	 }
	 else if(s==Smax&&lung>j-i+1&&inceput==i)
	 {inceput=i;
	  lung=j-i+1;
	  }
      }
   }

printf("%d %d %d",Smax,inceput,lung);
return 0;
}