Cod sursa(job #2132412)

Utilizator stefantagaTaga Stefan stefantaga Data 15 februarie 2018 19:19:25
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int x,an,n,mini=INT_MAX,maxim=INT_MIN,i,start,idx,sf,s,r,k;
short int v[400001],t[400001];
int main()
{
    f>>n;
    for (i=1;i<=n;i++)
    {
        f>>x>>an;
        if (an==0)
        {
            v[i]=-x;
            t[i]=-x;
        }
        else
        {
            v[i]=x;
            t[i]=x;
        }
    }
    for (i=1;i<=n;i++)
    {
        v[i]=v[i]+v[i-1];
        if (maxim<v[i]-mini)
        {
            maxim=v[i]-mini;
            start=idx+1;
            sf=i;
        }
        if (mini>v[i])
        {
            idx=i;
            mini=v[i];
        }
    }
    s=maxim;
    k=sf;
    idx=sf;
    while (idx<n+start-1)
    {
        idx++;
        if (idx%n==0)
        {
            r=n;
        }
        else
        {
            r=idx%n;
        }
        s+=t[r];
        if (s>maxim)
        {
            maxim=s;
            k=idx;
        }
    }
    g<<maxim<<" "<<start<<" "<<k-start+1;
    return 0;
}