Cod sursa(job #2952199)

Utilizator raresDRaresMihaiDeliu raresD Data 8 decembrie 2022 18:44:41
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n,i,a[400005],x,lmax,pi,p;
long long s=-1,smax=-20000000000;
int main()
{
    fin >> n;
    for(i=1;i<=n;i++)
    {
        fin >> a[i] >> x;
        if(x==0)
        a[i]=-a[i];
        a[n+i]=a[i];
    }
    for(i=1;i<=n*2;i++)
    {
        if(s<0)
        {
            p=i;
            s=0;
        }
        s=s+a[i];
        if(s>smax && i-p+1<=n)
        {
            smax=s;
            pi=p;
            lmax=i-p+1;
        }
    }
    fout << smax << ' ' << pi << ' ' << lmax << endl;
    return 0;
}