Cod sursa(job #240495)

Utilizator DraStiKDragos Oprica DraStiK Data 7 ianuarie 2009 19:10:37
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
int a[5005];
int n,s,ci,k,maxk,max;
void read ()
{
    int i,nr;
	scanf ("%d",&n);
	for (i=1; i<=n; ++i)
	{
	   scanf ("%d%d",&a[i],&nr);
	   if (!nr)
	       a[i]*=-1;
    }
	for (i=n+1; i<=2*n; ++i)
	   a[i]=a[i-n];
}
void solve ()
{
    int i;
    s+=a[1];
	max=a[1];
	ci=1;
	for (i=2; i<=n+maxk; ++i)
	{
	   s+=a[i];
	   ++k;
	   if (s<0)
	   {
	       s=0;
	       ci=i+1;
	       k=0;
	   }
	   if (s>max)
	   {
	       max=s;
	       maxk=k;
	   }
    }
}
int main ()
{
	freopen ("buline.in","r",stdin);
	freopen ("buline.out","w",stdout);
	read ();
	solve ();
	printf ("%d %d %d\n",max,ci,maxk);
	return 0;
}