Cod sursa(job #1687250)

Utilizator Bodo171Bogdan Pop Bodo171 Data 12 aprilie 2016 18:56:14
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include<fstream>
using namespace std;
long long v[400005],p,u,i,semn,n,s,bestsum,l,poz;
int main()
{
    ifstream f("buline.in");
    ofstream g("buline.out");
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>v[i]>>semn;
        if(!semn) v[i]*=-1;
        v[n+i]=v[i];
    }
    for(i=1;i<=n;i++)
    {
        if(s<=0)
        {
            p=i;
            u=i;
            s=v[i];
        }
        else
        {
            u++;
            s+=v[i];
        }
        if(s>bestsum) {bestsum=s;l=u-p+1;poz=p;}
    }
     for(i=1;i<=n;i++)
    {
        if(s<=0)
        {
            p=i;
            u=i;
            s=v[i];
        }
        else
        {
            u++;
            s+=v[i];
        }
        if(p==u-n) {p++;s-=v[i];}
        while(v[p]<0&&p<u)
        {
            s-=v[p];
            p++;
        }
        if(s>bestsum) {bestsum=s;l=u-p+1;poz=p;}
    }
    g<<bestsum<<' '<<poz<<' '<<l;
    return 0;
}