Cod sursa(job #2122770)

Utilizator Victor_IonescuVictor Ionescu Victor_Ionescu Data 5 februarie 2018 14:30:54
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;

int main()
{
    int n,x,c,v[200000],i,smax=INT_MIN,sopt=0,s=0,li=1,cont=0,j,p;
    ifstream in("buline.in");
    ofstream out("buline.out");
    in>>n;
    for(i=1;i<=n;i++)
    {
        in>>x>>c;
        if(c==0)
            v[i]=-x,v[n+i]=-x;
        else
            v[i]=x,v[n+i]=x;
    }
    for(j=1;j<=n;j++)
    {
        sopt=0;
        s=0;
        p=j+n-1;
        cont=0;
        for(i=j;i<=p;i++)
        {
            s+=v[i];
            if(s>sopt)
                sopt=s,cont++;
            else
                if(s+v[i+1]>sopt)
                    cont++;
        }
        if(sopt>smax)
            smax=sopt,li=j;
    }
    if(sopt>smax)
        smax=sopt;
    out<<smax<<" "<<li<<" "<<cont;
    in.close();
    out.close();
    return 0;
}