Cod sursa(job #3183780)

Utilizator CastielGurita Adrian Castiel Data 13 decembrie 2023 10:39:37
Problema Buline Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
vector <int> v;
int t,a,n,s,l,p,smax,u,best[200005];
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>a>>t;
        if(t==1){v.push_back(a);}
        else{v.push_back((-1)*a);}
    }
    for(int i=0;i<n-1;i++)
    {
        v.push_back(v[i]);
    }
    best[0]=v[0];
    smax=v[0];
    for(int i=1;i<=2*n-3;i++)
    {
        best[i]=max(best[i-1]+v[i],v[i]);
        smax=max(smax,best[i]);
    }
    for(int i=0;i<=2*n-3;i++)
    {
        if(best[i]==smax)
        {
            int j=i;
            u=i;
            while(j>0)
            {
                j--;
                p=j;
                if(best[j]<0)
                {
                    break;
                }
            }
            break;
        }
    }
    fout<<smax<<" "<<p+2<<" "<<u-p;
    fin.close();
    fout.close();
    return 0;
}