Cod sursa(job #303236)

Utilizator pedobearBacauanu Vlad pedobear Data 9 aprilie 2009 17:49:54
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>

int i,n,smax=-30000,s,lung,lungmax,poz=1,imax;
int v[400200];

int main ()
{
    freopen ("buline.in","r",stdin);
    freopen ("buline.out","w",stdout);
    
    scanf ("%d",&n);
    for (i=1;i<=n;i++){
        int nr,cul;
        scanf ("%d %d",&nr,&cul);
        if (cul==0) v[i]=-nr;
        else v[i]=nr;
        v[n+i]=v[i];
        }
    
    for (i=1;i<=2*n;i++) printf ("%d ",v[i]);
    
    for (i=1;i<=2*n;i++){
        s=s+v[i];
        lung++;
        if (s>smax){
                    smax=s;
                    lungmax=lung;
                    imax=poz;
                    }
        if (s<=0 || lung==n) {
                  s=lung=0;
                  poz=i+1;
                  }
        }
        
    if (imax>n) imax-=n;
        
    printf ("\n%d %d %d",smax,imax,lungmax);
                  
    return 0;
}