Cod sursă (job #486218)

Utilizator avatar mircearoata Mircea Roata Palade mircearoata IP ascuns
Problemă Lalele (clasele 9-10) Compilator cpp | 0,81 kb
Rundă Arhiva de probleme Status evaluat
Dată 15 sept. 2019 13:06:07 Scor 100
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

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

int n, nrZi;
int d, x;

vector<int> lalele;

int main()
{
    in >> n;
    while(nrZi < n)
    {
        in >> d >> x;
        for(int i = 1; i <= d; i++)
        {
            nrZi++;
            if(x == 0)
            {
                nth_element(lalele.begin(), lalele.begin() + lalele.size() / 2, lalele.end(), [](const int & l, const int & r){ return (nrZi - l) < (nrZi - r); });
                out << nrZi - lalele[lalele.size() / 2] << '\n';
                lalele.erase(lalele.begin() + lalele.size() / 2, lalele.end());
            }
            else
                lalele.push_back(nrZi - x);
        }
    }
    return 0;
}