From 322a331727daa0be3c8bcbdb7accabc833e5b090 Mon Sep 17 00:00:00 2001 From: Ren Baoshuo Date: Sat, 7 Aug 2021 18:44:56 +0800 Subject: [PATCH] UVA1316 Supermarket R55230910 --- Luogu/problem/UVA1316/UVA1316.cpp | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Luogu/problem/UVA1316/UVA1316.cpp diff --git a/Luogu/problem/UVA1316/UVA1316.cpp b/Luogu/problem/UVA1316/UVA1316.cpp new file mode 100644 index 00000000..f42d6616 --- /dev/null +++ b/Luogu/problem/UVA1316/UVA1316.cpp @@ -0,0 +1,38 @@ +#include + +using namespace std; + +struct node { + int expire, value; + + const bool operator<(const node& b) const { + return expire > b.expire; + } +} a[10005]; + +int main() { + int n; + while (cin >> n) { + int d = 1, ans = 0; + priority_queue q; + for (int i = 0; i < n; i++) { + cin >> a[i].value >> a[i].expire; + } + sort(a, a + n); + a[n].value = a[n].expire = 0; + for (int i = 0; i < n;) { + int last = a[i].expire; + while (a[i].expire == last) { + q.push(a[i++].value); + } + int lim = last - a[i].expire; + while (q.size() && lim) { + ans += q.top(); + q.pop(); + lim--; + } + } + cout << ans << endl; + } + return 0; +}