Cod sursa(job #3165039)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 5 noiembrie 2023 11:51:37
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <climits>
#define DIM 2000001

using namespace std;

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

int n,s,x,i,u,p,j,sumopt,minim,m,l,pozmin;
int v[2*DIM];
bool alb;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x>>alb;
        if(alb)
            v[i]=x;
        else
            v[i]=-x;
    }
    for(i=1;i<=n-1;i++)
        v[n+i]=v[i];
    m=2*n-1;
    for(i=1;i<=m;i++)
    {
        v[i]=v[i]+v[i-1];
        if(v[i]-minim>sumopt)
        {
            sumopt=v[i]-minim;
            p=pozmin+1;
            u=i;
            l=u-p+1;
        }
        else if(v[i]-minim==sumopt && i-pozmin>l)
        {
            l=i-pozmin;
            p=pozmin+1;
            u=i;
        }
        if(v[i]<minim)
        {
            minim=v[i];
            pozmin=i;
        }
    }
    fout<<sumopt<<" ";
    if(p>n)
        fout<<p-n;
    else
        fout<<p;
    fout<<" "<<l;
    return 0;
}