Cod sursa(job #2443956)

Utilizator red_devil99Mancunian Red red_devil99 Data 29 iulie 2019 20:47:44
Problema Lupul Urias si Rau Scor 16
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <utility>
#include <algorithm>
#include <vector>
using namespace std;


bool sortbysec(pair<int,int> &a, 
              pair<int,int> &b) 
{ 
    return (a.first > b.first); 
} 

int main(){
	ifstream fin("lupu.in");
    ofstream fout("lupu.out");
	int n, x, l, d, lana;
	fin >> n >> x >> l;
	vector<pair<int, int>> v(100005);
	for(int i = 0; i < n; i++){
		fin >> d >> lana;
		v.push_back(make_pair(d, lana));
		
	}
   sort(v.begin(), v.end(), sortbysec);
   int copie = v[n-1].first;
   //fout << copie <<'\n';
   int pas = 0;
   while(copie <= x){
      pas++;
      copie += l;
   }
   int max = 0;
   int nr = 0;
   int S = 0;
   //fout << pas<<'\n';
  while(pas > 0){ 
   max = 0;
   nr = 0;
   for(int i = 0; i < v.size(); i++){
   	if(v[i].first + l > x){
   	   nr++;
       if(v[i].second > max){
       	max = v[i].second;
       }
   	}
   }
   v.erase(v.begin(), v.begin() + nr);
   for(int i = 0; i < v.size(); i++){
   	v[i].first += l;
   }
   S += max;
   pas--;
}
fout << S <<" ";
}