Cod sursa(job #1461816)

Utilizator anamariaraduAna Maria Radu anamariaradu Data 16 iulie 2015 15:29:36
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int x[6000001];
int main()
{
    int i,n,sc,ic,smax,im,sfm,smin,imin,sfmin,s=0,smax2;
    int c;
    fin>>n;
    for(i=1;i<=n;i++)
        {
            fin>>x[i];
            fin>>c;
            if(c==0)
                x[i]=-x[i];
            s=s+x[i];
        }
    sc=smax=x[1];
    im=ic=sfm=1;
    for(i=2;i<=n;i++)
    {
        if(sc+x[i]<x[i])
            {sc=x[i];
            ic=i;}
        else
            sc=sc+x[i];
        if(sc>smax)
            {
                smax=sc;
                im=ic;
                sfm=i;
            }
    }
    sc=smin=x[1];
    imin=ic=sfmin=1;
    for(i=2;i<=n;i++)
    {
        if(sc+x[i]>x[i])
            {sc=x[i];
            ic=i;}
        else
            sc=sc+x[i];
        if(sc<smin)
            {
                smin=sc;
                imin=ic;
                sfmin=i;
            }
    }
    smax2=s-smin;
    if(smax<smax2)
        fout<<smax2<<" "<<(sfmin+1)%n<<" "<<n-sfmin+imin-1;
    else
        fout<<smax<<" "<<im<<" "<<sfm-im+1;
    return 0;
}