Cod sursa(job #2757147)

Utilizator bogdan14042005Dobrinoiu Bogdan bogdan14042005 Data 4 iunie 2021 09:25:05
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>

using namespace std;
const int NMAX=200000;
int v[NMAX+5];
ifstream fin("buline.in");
ofstream fout("buline.out");
int main()
{
    int n,smaxcirc,stot,smin,i,j,ic,sc,st,dr,pozi1,nr1,nr2,smax,aux,aux1,x,s;
    fin>>n;
    s=0;
    for(i=1;i<=n;i++)
    {
        fin>>v[i]>>x;
        if(x==0)
            v[i]=v[i]*(-1);
        s+=v[i];
    }
    sc=smax=v[1];
    st=ic=dr=1;
    for(i=2;i<=n;i++)
    {
        if(sc+v[i]<v[i])
        {
            sc=v[i];
            ic=i;
        }
        else
            sc+=v[i];
        if(sc>smax)
        {
           smax=sc;
           st=ic;
           dr=i;
        }
    }
    aux=st;
    aux1=dr;
    sc=smin=v[1];
    st=ic=dr=1;
    for(i=2;i<=n;i++)
    {
        if(sc+v[i]>=v[i])
        {
            sc=v[i];
            ic=i;
        }
        else
            sc+=v[i];
        if(sc<smin)
        {
           smin=sc;
           st=ic;
           dr=i;
        }
    }
    smaxcirc=s-smin;
    pozi1=dr+1;
    nr1=n-(dr-st+1);
    if(smax>smaxcirc)
        fout<<smax<<" "<<aux<<" "<<aux1-aux+1;
    else
        fout<<smaxcirc<<" "<<pozi1<<" "<<nr1;
    return 0;
}