Cod sursa(job #3238690)

Utilizator Dani111Gheorghe Daniel Dani111 Data 29 iulie 2024 15:14:21
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;

const int MAX = 3 * 1e5;
int N, X, L;
pair<int, int> A[MAX + 3];
long long ans;
priority_queue<int>pq;

int main() {
	freopen("lupu.in", "r", stdin);
	freopen("lupu.out", "w", stdout);

	cin.tie(0);
	cout.tie(0);
	ios_base::sync_with_stdio(false);

	cin >> N >> X >> L;

	for(int i = 1; i <= N; i++) {
		cin >> A[i].first >> A[i].second;
	}	

	sort(A + 1, A + N + 1);

	int i = 1;
	for(int T = X % L; T <= X; T += L) {
		while(i <= N && A[i].first <= T) {
			pq.push(A[i].second);
			i++;
		}

		if(!pq.empty()) {
			ans += pq.top();
			pq.pop();
		}
	}

	cout << ans;
}