Cod sursa(job #2358709)

Utilizator cosmin1972Nour Mihai-Cosmin cosmin1972 Data 28 februarie 2019 11:31:55
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("buline.in");
ofstream out("buline.out");

int v[400005];

int main()
{
    long long n,l=0,lmax=0,s=0,st=1,stm=0,smax=-10000;
    in>>n;
    for(int i=1; i<=n; i++)
    {
        int x,c;
        in>>x>>c;
        v[i]=v[n+i]=x;
        if(c==0)
        {
            v[i]=-v[i];
            v[n+i]=v[i];
        }
        if(v[i]>smax)
        {
            smax=v[i];
            stm=i;
            lmax=i;
        }
    }
    for(int i=1; i<=2*n+1; i++)
    {
        if(s+v[i]>v[i] && l<n)
        {
            s+=v[i];
            l++;
            if(s>smax)
            {
                smax=s;
                lmax=l;
                stm=st;
            }
        }
        else
        {
            st=i;
            l=1;
            s=v[i];
        }
    }
    out<<smax<<" "<<stm<<" "<<lmax;
    return 0;
}