Cod sursa(job #963585)

Utilizator mvcl3Marian Iacob mvcl3 Data 17 iunie 2013 20:21:16
Problema Lupul Urias si Rau Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;

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

int n, x, l, d, q;
vector<pair<int, int> > v;
set<int> s;

int main()
{
    long long sol = 0;

    f >> n >> x >> l;
    for(int i = 1; i <= n; ++i)
    {
        s.insert(-i);
        f >> d >> q;
        v.push_back(make_pair(-q, d));
    }

    sort(v.begin(), v.end());
    set<int> :: iterator it;

    for(int i = 0; i < n; ++i)
    {
        int t = (x - v[i].second) / l + 1;
        it = s.find(-t);

        if(it != s.end())
        {
            sol -= v[i].first;
            s.erase(it);
        }
    }

    g << sol << '\n';

    g.close();
    return 0;
}