Cod sursa(job #2687311)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 19 decembrie 2020 18:54:44
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <iostream>

using namespace std;

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

int n, v[400005];
int suma, st, a, b;
int maxx, stmax, len;

int main (){
    fin>>n;
    for(int i=1; i<=n; i++){
        fin>>a>>b;
        if(b == 0)
            v[i]=-a;
        else
            v[i]=a;
    }

    for(int i=n+1; i<=2*n; i++)
        v[i]=v[i-n];

    suma=v[1];
    st=1;

    maxx=suma;
    stmax=1;
    len=1;

    for(int i=2; i<=2*n; i++){

        if(suma+v[i] < v[i]){
            suma=v[i];
            st=i;
        }else if(st+n-1 >= i)
            suma+=v[i];
        else{
            suma=v[i];
            st=i;
        }

        if(suma > maxx){
            maxx=suma;
            stmax=st;
            len=i-st+1;
        }
    }

    fout<<maxx<<" "<<stmax<<" "<<len;
    return 0;
}