Cod sursa(job #3340702)

Utilizator dianatheadiana thea udristoiu dianathea Data 15 februarie 2026 20:58:26
Problema Buline Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <fstream>
#include <climits>
#include <algorithm>
#include <bitset>




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



int main()
{
    int n;
    fin>>n;
    long long b[n*2];
    for(int i=1;i<=n;i++)
    {
        fin>>b[i];
        int semn;
        fin>>semn;
        if(semn==0)
        {
            b[i]=b[i]*(-1);
        }

    }
    for(int i=n+1;i<=n*2-1;i++)
    {
        b[i]=b[i-n];
    }
    long long s=b[1];
    int st=1;
    long long maxx=s,p=1,l=1;
    for(int i=2;i<=n*2-1;i++)
    {
        if(s + b[i]>=b[i])
        {
            s=s+b[i];
        }
        else
        {
            s=b[i];
            st=i;
        }
        if(i==st+n)
        {
            s=s-b[i];
            st++;
            while(b[st] < 0 && st < n)
            {
                s = s - b[st];
                st++;
            }
        }
        if(st>n)
        {
            break;
        }
        if(s>maxx)
        {
            maxx=s;
            p=st;
            l=i-st+1;
        }
    }
    fout<<maxx<<" "<<p<<" "<<l;

    return 0;
}