Cod sursa(job #2336012)

Utilizator ezioconnorVlad - Gabriel Iftimescu ezioconnor Data 4 februarie 2019 18:31:27
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <climits>

using namespace std;

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

int v[200001];

int main()
{
    int n, a, b, s = 0, smax = INT_MIN, poz, st, dr;
    in >> n;
    for (int i = 1; i <= n; ++i)
    {
        in >> a >> b;
        if (b == 0)
            v[i] = -1 * a;
        else
            v[i] = a;
    }
    for (int i = 1; i <= 2 * n - 1; ++i)
    {
        int j = i % n;
        if (j == 0)
            j = n;
        if (s < 0)
        {
            s = v[j];
            poz = j;
        }
        else
            s += v[j];
        if (s > smax)
        {
            smax = s;
            st = poz;
            dr = j;
        }
    }
    out << smax << " " << st << " ";
    if (dr < st)
        out << n - st + 1 + dr;
    else
        out << dr - st + 1;
    return 0;
}