Cod sursa(job #2330265)

Utilizator mirceatlxhaha haha mirceatlx Data 28 ianuarie 2019 10:27:07
Problema Buline Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
struct jjj{
    int cul,nr;
};
jjj v[200005];
int main()
{
    int smax2=0;
    int stot=0;
    int n,i;
    fin>>n;
    int x;
    for(i=1;i<=n;i++)
    {
        fin>>v[i].cul>>v[i].nr;
        if(v[i].cul==0)
        {
            v[i].nr=v[i].nr*(-1);
            stot=stot+v[i].nr;
        }
    }
    int sc,smax;
    sc=smax=v[1].nr;
    int st,dr,ic;
    st=dr=ic=1;
    for(i=2;i<=n;i++)
    {
        if(sc+v[i].nr<v[i].nr)
        {
            ic=i;
            sc=v[i].nr;
        }
        else
        {
            sc=sc+v[i].nr;
        }
        if(sc>smax)
        {
            smax=sc;
            st=ic;
            dr=i;
        }

    }
    int smax1;
    sc=smax1=v[1].nr;
    int st1=st;
    int dr1=dr;
    st=dr=ic=1;
    for(i=2;i<=n;i++)
    {
         /*if(v[i].cul==0)
            v[i].nr=v[i].nr*(-1);*/
        if(sc+v[i].nr<v[i].nr)
        {
            ic=i;
            sc=v[i].nr;
        }
        else
        {
            sc=sc+v[i].nr;
        }
        if(sc<smax1)
        {
            smax1=sc;
            st=ic;
            dr=i;
        }

    }
    smax2=stot-smax1;
    if(smax<smax2)
    {
        fout<<smax2<<" "<<dr+1<<" "<<st-dr+1;
    }
    else
        fout<<smax<<" "<<st<<" "<<dr-st+1;
    return 0;
}