Cod sursa(job #2355040)

Utilizator DovlecelBostan Andrei Dovlecel Data 25 februarie 2019 19:28:44
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <algorithm>
#include <queue>

using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
const int N=100010;
pair<int,int>v[N];
int n,x,l;
priority_queue<int>q;

bool comestibil(int poz, int pas)
{
    if(poz<=n && pas*l+v[poz].first<=x)
        return true;
    return false;
}

int main()
{
    in>>n>>x>>l;
    for(int i=1;i<=n;i++)
        in>>v[i].first>>v[i].second;
    sort(v+1,v+n+1);
    int nrpasi=(x-v[0].first)/l;
    int poz=0;
    long long s=0;
    for(int pas=nrpasi;pas>=0;pas--)
    {
        while(comestibil(poz,pas))
        {
            q.push(v[poz].second);
            poz++;
        }
        if(!q.empty())
        {
            s=s+q.top();
            q.pop();
        }
    }
    out<<s;
    return 0;
}