Cod sursa(job #216428)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 24 octombrie 2008 15:57:34
Problema Buline Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>

int a[20001],n;

void citire()
{   int v;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
     {
      scanf("%d %d",&a[i],&v);
      if(v==0)
        a[i]=a[i]*(-1);
     }
}

void solve()
{
 int S_max=a[1];
 int inceput=1,lungmax=1;
 int S=S_max,lg=1;
 int poz_i=1;

 for(int i=2;i<=n*2;i++)
  {
   int j=i%n;
   if(j==0)
     j=n;
   if(S<0)
     {
      S=a[j];
      poz_i=j;
      lg=1;
      }
     else
       {S=S+a[j];
        lg++;
       }
    if(S_max<S&&lg<=n)
      {
       S_max=S;
       inceput=poz_i;
       lungmax=lg;
      }
  }

 printf("%d %d %d",S_max,inceput,lungmax);
}

int main()
{
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    citire();
    solve();
    return 0;
}