작성
·
136
0
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pp;
typedef map<int,int> m;
priority_queue<int, vector<int>,greater<int>> pq;
void l(){ cout << "------- " << endl;}
int n; vector<pp> v;
// day 정렬
bool cSort(const pp &a, const pp &b){
if(a.second != b.second){//sort by day
return a.first < b.first;
}
return a.second > b.second; //sort by money
}
//input
void i(){
cin >> n;
int d,p;
for(int i=0; i<n; i++){
cin >> p;
cin >> d;
v.push_back({d,p});
}
sort( v.begin(), v.end() );
}
//solution
void s(){
int money=0;
for(pp dp : v){
pq.push(dp.second);//price
if(pq.size() > dp.first) pq.pop();// pop
}
while(!pq.empty()){
money += pq.top(); pq.pop();
}
cout << money;
}
void sol(){
i();s();
}
int main() {
sol();
return 0;
}
위 코드에서 cSort를 써서 소팅 하게 되면 틀리는데 혹시 어떤 문제인지 여쭤봐도 될까요?
sort( v.begin(), v.end() );
평범하게 소팅하면 통과가 되는데, cSort로 order by date, price로 정렬하면 에러가 터집니다.
넵. 안녕하세요 큰돌님. sort -> cSort 함수로 변경하면 에러가 뜨게 됩니다ㅠ