Cod sursa(job #2757154)

Utilizator raisa_grigorasGrigoras Raisa raisa_grigoras Data 4 iunie 2021 09:31:08
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
const int nmax=200000;
int v[nmax+5],s[nmax+5];
int main()
{
    int i,n,stot=0;
    bool semn;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>v[i]>>semn;
        if(semn==0)
            v[i]=-v[i];
        stot+=v[i];
    }
    int sc,scmin,scmax,ic,stmin,drmin,stmax,drmax;
    sc=scmax=v[1];
    ic=stmax=drmax=1;
    for(i=2;i<=n;i++)
    {
        if(sc+v[i]<v[i])
        {
            sc=v[i];
            ic=i;
        }
        else
            sc=sc+v[i];
        if(sc>scmax)
        {
            scmax=sc;
            stmax=ic; drmax=i;
        }
    }
    ic=stmin=drmin=1;
    sc=scmin=v[1];
    for(i=2;i<=n;i++)
    {
        if(sc+v[i]>v[i])
        {
            sc=v[i];
            ic=i;
        }
        else
            sc=sc+v[i];
        if(sc<scmin)
        {
            scmin=sc;
            stmin=ic; drmin=i;
        }
    }
    int scirc=stot-scmin;
    if(scirc>scmax)
        fout<<scirc<<" "<<drmin+1<<" "<<n-(drmin-stmin+1)<<"\n";
    else
        fout<<scmax<<" "<<stmax<<" "<<drmax-stmax+1<<"\n";
    fin.close();
    fout.close();
    return 0;
}