#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
ll N, K;
cin >> N >> K;
if(K < 100000) return 1;
vector<pair<ll, ll>> ver(N);
for(ll i = 0; i < N; i++) {
ll a, b;
cin >> a >> b;
ver[i] = make_pair(a, b);
}
sort(ver.begin(), ver.end());
ll ret = 0;
for(ll i = 1; i < N && ver[i].first == 0; i++) {
ver[i].first = 1;
ret += 100000;
}
ll nx_free = 0;
ll mn = ver[0].second;
ll nx_mn = 0x7fffffff;
vector<ll> free(301, 0);
vector<ll> minprice(301, 0x7fffffff);
for(pair<ll, ll> p : ver) {
for(ll i = p.first + 1; i < 301; i++) {
free[i]++;
minprice[i] = min(minprice[i], p.second);
}
}
vector<pair<ll, ll>> v;
for(pair<ll, ll> p : ver) {
v.push_back(make_pair(-p.second, p.first));
}
sort(v.begin(), v.end());
for(pair<ll, ll> p : v) {
if(p.second == 0) continue;
if(free[p.second] > 0) {
for(int i = p.second; i < 301; i++) free[i]--;
}
else {
ret += minprice[p.second];
}
}
cout << ret;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |