Cod sursa(job #3347529)

Utilizator Sebastian_Codricisebi codrici Sebastian_Codrici Data 17 martie 2026 09:31:02
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>


using namespace std;

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

long long v[400005];

int main() {
    int n;
    cin>>n;
    for (int i=1; i<=n; i++) {
        int va, c;
        cin >> va >> c;
        if (c==0)
            v[i]=-va;
        else
            v[i]=va;
        v[i+n]=v[i];
    }
    long long vmax=-2e18;
    int startb=1, lmax=1;

    long long sum=-2e18;
    int start=1, l=0;
    for (int i=1; i<=2*n-1; i++) {
        if (sum<0){
            sum=v[i];
            start=i;
            l=1;
        } else {
            sum+=v[i];
            l++;
        }
        if (l>n) {
            sum-=v[i-n];
            l--;
        }
        if (sum>vmax) {
            vmax=sum;
            if (start>n) {
                startb=start-n;
            }
            else {
                startb=start;
            }
            lmax=l;
        }
    }

    cout << vmax << " " << startb << " " << lmax << "\n";
    return 0;
}