#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define sz(x) (int)x.size()
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define fi first
#define se second
#define cmin(a, b) a=min(a, b)
#define cmax(a, b) a=max(a, b)
void solve();
signed main() {
ios::sync_with_stdio(0); cin.tie(0);
solve();
return 0;
}
int n, q, k;
vector<pair<int, int>> a;
void solve() {
cin >> n >> k;
a.resize(305, {k, 0});
for (int i=0; i<n; i++) {
int x, y; cin >> x >> y;
a[x]={min(a[x].fi, y), a[x].se+1};
}
int nb=0, mini=k, ans=0;
for (int i=0; i<305; i++) if (a[i].se) {
if (mini==k) {
a[i+1].se+=a[i].se-1;
nb=1;
ans+=k*(a[i].se-1);
mini=a[i].fi;
continue;
}
int past=a[i].se;
if (a[i].se>nb) a[i].se-=nb, nb=0;
else nb-=a[i].se, a[i].se=0;
ans+=a[i].se*mini;
nb+=past, cmin(mini, a[i].fi);
}
cout << ans << endl;
}
# | 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... |