Cod sursa(job #216514)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 24 octombrie 2008 19:22:54
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>

int t[200001],s[200001],a[200001],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);
     }
}

int max(int x,int y)
{
   if(x>y)
    return x;
    else
    return y;
}

void solve()
{
    for(int i=1;i<=n;i++)
      s[i]=s[i-1]+a[i];
    for(int i=1;i<=n;i++)
       t[i]=max(t[i-1],s[i]);
    int ss,smax;
    ss=0;smax=-20001;
    for(int i=1;i<=n;i++)
        {
         ss=t[i-1]+s[n]-s[i-1];
         smax=max(smax,ss);
        }
    printf("%d %d %d\n",smax,smax,smax);
}

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