Cod sursa(job #1876135)

Utilizator valentinoMoldovan Rares valentino Data 11 februarie 2017 23:32:30
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#define INF 0x3f3f3f3f
#define Nmax 200002
using namespace std;

ifstream f("buline.in");
ofstream g("buline.out");

long long int v[Nmax+Nmax], Smax = -400000000;
int bin[2] = {-1,1};

int main()
{
    int n, x,m;
    f >> n;
    m = n;

    for(int i = 1; i <= n; ++i)
    {
        f >> v[i] >> x;
        v[i] *= bin[x];
    }
    for(int i = 1; i <= n-1; ++i)
        v[n+i] = v[i];
    n = n+n-1;

    int st, dr, indx = 1, ends, s = 0, maxx = -INF;
    for(int i = 1; i <= n; ++i)
    {
        if(s < 0)
        {
            s = v[i];
            indx = i;
        }
        else s += v[i];
        if(s > maxx)
        {
            maxx = s;
            st = indx;
            dr = i;
        }
    }
    if(st > n) g << maxx << ' ' << st - n << ' ' << dr - st + 1 << '\n';
    else g << maxx << ' ' << st << ' ' << dr - st + 1;


}