Cod sursă (job #389560)

Utilizator avatar ezioconnor Vlad - Gabriel Iftimescu ezioconnor IP ascuns
Problemă Lalele (clasele 9-10) Compilator cpp | 0.94 kb
Rundă Arhiva de probleme Status evaluat
Dată 18 sept. 2018 18:41:28 Scor 100
#include <fstream>
#include <algorithm>

using namespace std;

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

const int NMAX = 5000005;

int v[NMAX], ult[NMAX];

int main()
{
    int n, k=0, p=0, x, d, i = 1;
    in >> n;
    while (i <= n)
    {
        in >> d >> x;
        if (x > 0)
        {
            for (int j = 1; j <= d; ++j)
            {
                ++k;
                v[k] = x;
                ++p;
                ult[k] = p;
            }
        }
        else
        {
            for (int j = 1; j <= k; ++j)
            {
                v[j] += p - ult[j];
                ult[j] = p;
            }
            for (int j = 1; j <= d; ++j)
            {
                ++p;
                nth_element(v + 1, v + k / 2 + 1,v + k + 1);
                k /= 2;
                out << v[k + 1] + p - ult[j] << '\n';
            }
        }
        i += d;
    }
    return 0;
}