diff --git "a/khj20006/202512/08 BOJ P5 \352\264\221\353\266\200 \355\230\270\354\204\235.md" "b/khj20006/202512/08 BOJ P5 \352\264\221\353\266\200 \355\230\270\354\204\235.md" new file mode 100644 index 00000000..5d5ba967 --- /dev/null +++ "b/khj20006/202512/08 BOJ P5 \352\264\221\353\266\200 \355\230\270\354\204\235.md" @@ -0,0 +1,40 @@ +```cpp +#include +using namespace std; +using ll = long long; + +int N, C; +vector> arr; +priority_queue> q; + +int main(){ + cin.tie(0)->sync_with_stdio(0); + + cin>>N>>C; + arr.resize(N); + for(auto &[x,y,v] : arr) cin>>x>>y>>v; + sort(arr.begin(), arr.end()); + + ll ans = 0, cur = 0; + for(int i=0;i(arr[i]); + while(i(arr[i]) == x) { + cur += get<2>(arr[i]); + q.emplace(get<1>(arr[i]), get<2>(arr[i])); + i++; + } + while(q.size() > C) { + auto [y, v] = q.top(); q.pop(); + cur -= v; + while(!q.empty() && q.top().first == y) { + cur -= q.top().second; + q.pop(); + } + } + ans = max(ans, cur); + } + + cout<