Cod sursa(job #2286740)

Utilizator AnduRazvanMindrescu Andu AnduRazvan Data 20 noiembrie 2018 17:49:06
Problema Lupul Urias si Rau Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <set>
#include <algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");

set < pair <int,int> > myset;
pair <int,int> per[100001];
int main()
{
    int n,x,l,a,b;
    fin>>n>>x>>l;
 for(int i=1;i<=n;i++)
    fin>>per[i].first>>per[i].second;
sort(per,per+n+1);

int r=x%l,poz;

for(int i=1;i<=n;i++)
    {
        per[i].second=-per[i].second;
        if(per[i].first<=r) {myset.insert(per[i]);poz=i;}
    }

int sum=-myset.begin()->second;
myset.erase(myset.begin());
int pasi=1;
while(pasi<x/l+1)
{
    for(int i=poz+1;i<=n;i++)
     if(per[i].first<=r+pasi*l) {poz=i;myset.insert(per[i]);}
     else break;
    sum=sum-myset.begin()->second;
    myset.erase(myset.begin());
    pasi++;
}
fout<<sum;
    return 0;
}