Submission #1179686

#TimeUsernameProblemLanguageResultExecution timeMemory
1179686NonozeSki 2 (JOI24_ski2)C++20
5 / 100
0 ms328 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...