안녕하세요. 오늘은 순회 강연을 갈 거예요.
https://www.acmicpc.net/problem/2109
컵라면 문제 비슷하게 풀면 됩니다.
#include <iostream>
#include <vector>
#include <queue>
#define ll long long
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
vector <ll> v[10101];
priority_queue <ll> pq;
ll N, i, a, b, ans = 0;
cin >> N;
for (i = 0; i < N; i++)
{
cin >> a >> b;
v[b].push_back(a);
}
for (i = 10000; i >= 1; i--)
{
for (ll x : v[i])
pq.push(x);
if (pq.size())
{
ans += pq.top();
pq.pop();
}
}
cout << ans;
}
감사합니다.