알고리즘
백준 22252번 정보 상인 호석 C++
영춘권의달인
2022. 11. 27. 14:21
https://www.acmicpc.net/problem/22252
22252번: 정보 상인 호석
암흑가의 권력은 주먹과 정보에서 나온다. 주먹은 한 명에게 강하고, 정보는 세계를 가지고 놀 수 있기 때문에 호석이는 세상 모든 정보를 모으는 "정보 상인"이 되고 싶다. 정보 상인은 정보를
www.acmicpc.net
map에 key를 고릴라의 이름, value를 정보를 저장하고 있는 우선순위 큐로 넣어서 풀었다.
#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <list>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <limits.h>
using namespace std;
using int64 = long long;
int q;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> q;
int64 ans = 0;
map<string, priority_queue<int>> mp;
for (int i = 0; i < q; i++) {
int type;
string name;
cin >> type >> name;
auto it = mp.find(name);
if (type == 1) {
int k;
cin >> k;
for (int i = 0; i < k; i++) {
int cost;
cin >> cost;
if (it == mp.end()) {
priority_queue<int> pq;
mp.insert({ name,pq });
}
mp[name].push(cost);
}
}
else {
int b;
cin >> b;
if (it != mp.end()) {
for (int i = 0; i < b; i++) {
if (mp[name].empty()) break;
int top = mp[name].top();
ans += top;
mp[name].pop();
}
}
}
}
cout << ans;
}