Cod sursa(job #2292429)

Utilizator Andrei243Nitu Mandel Andrei Andrei243 Data 29 noiembrie 2018 15:58:15
Problema Lupul Urias si Rau Scor 48
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>

using namespace std;

struct oaie{
int distanta,lana;
oaie(int _dis=0,int _lan=0){
distanta=_dis;
lana=_lan;
}

bool operator<(oaie b)const{
if(lana<b.lana)return true;
return false;
}

};

int main()
{
ifstream in("lupu.in");
ofstream out("lupu.out");
int N,X,L;
in>>N>>X>>L;

vector<oaie> oi;
for(int i=0;i<N;i++){
    int aux1,aux2;
    in>>aux1>>aux2;
    oi.push_back(oaie(aux1,aux2));

}
priority_queue<int> selectate;
int suma=0;
int nr_iter=X/L;
for(int i=0;i<=nr_iter;i++){
    for(vector<oaie>::iterator iter=oi.end()-1;iter!=oi.begin();iter--){
        if((*iter).distanta<=X%L+i*L){
          selectate.push((*iter).lana);
            oi.erase(iter);
        }
    }

  if(!oi.empty()){
   if(oi[0].distanta<X%L+i*L){
          selectate.push(oi[0].lana);
            oi.erase(oi.begin());
        }
  }
if(!selectate.empty()){
suma+=selectate.top();
selectate.pop();}
}
out<<suma;
in.close();
out.close();
    return 0;
}