Cod sursa(job #868123)

Utilizator timicsIoana Tamas timics Data 30 ianuarie 2013 18:06:07
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<fstream>
//#include<iostream>
using namespace std;
int s[6000001],t[6000001],N,x,ma,asf=1,as=1,bs=1,atf=1,att=1,bt=1;
int main()
{
    ifstream cin("buline.in");
    ofstream cout("buline.out");
    cin>>N;
    s[0]=0;
    for(int i=1;i<=N;++i)
    {
        cin>>s[i]>>x;
        if(x==0) s[i]=-s[i];
        s[i]=s[i-1]+s[i];
        t[i]=-s[i];
    }
    int mis=0;
    int mit=0;
    int mas=s[1];
    int mat=t[1];
    for(int i=1;i<=N;++i)
    {
        if(s[i-1]<mis)
        {
            mis=s[i-1];
            as=i;
        }
        if(s[i]-mis>mas)
        {
            mas=s[i]-mis;
            bs=i;
            asf=as;
        }
        if(t[i-1]<mit)
        {
            mit=t[i-1];
            att=i;
        }
        if(t[i]-mit>mat)
        {
            mat=t[i]-mit;
            bt=i;
            atf=att;
        }
    }
    x=bs-asf+1;
    if(s[N]+mat>mas)
    {
        mas=s[N]+mat;
        asf=bt+1;
        x=N-1-bt+atf;
    }
    cout<<mas<<" "<<asf<<" "<<x;
    return 0;
}