Cod sursa(job #1412200)

Utilizator raisacmtAxenie Raisa raisacmt Data 1 aprilie 2015 10:24:13
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>

using namespace std;
int v[200005];
bool c[200005];
int main()
{
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    int n,i,stot=0,smin,sc,smax,st,drm,stm,dr,l;
    scanf("%d",&n);
    for(i=0; i<n; i++){
        scanf("%d",&v[i]);
        scanf("%d",&c[i]);
        if(c[i]==0)
            v[i]*=(-1);
        stot+=v[i];
    }

   sc=smin=v[0];
   st=stm=drm=0;
   for(i=1; i<n; i++)
   {
       if(sc+v[i]<v[i])
            sc+=v[i];
       else
       {
           sc=v[i];
           st=i;
       }
       if(sc<smin)
       {
           stm=st;
           drm=i;
           smin=sc;
       }
   }
   if(smin>0)
    printf("%d 1 %d",stot,n);
   else
   {
       smax=stot-smin;
       dr=(stm-1)%n;
       st=(drm+1)%n;
       l=(dr+n-st)%n+1;
       printf("%d %d %d",smax,st+1,l);
   }
    return 0;
}