Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

1R/2016 09 24

From ZeroWiki
Revision as of 01:59, 26 September 2016 by 175.124.46.11 (talk)

오늘의 문제

참가자

코드

15이원준

#include<iostream>
#include<algorithm>
#include<set>
#include<utility>
#include<queue>

using namespace std;

int main(){
  priority_queue<pair<int, int>> que;
  multiset<int> bag;
  int N, K;
  long long int ans = 0;
  cin >> N >> K;
  for(int i = 0; i<N; i++){
    int tmp1, tmp2;
    scanf("%d %d", &tmp1, &tmp2);
    que.push(make_pair(tmp2, tmp1));
  }
  for(int i = 0; i<K; i++){
    int tmp;
    scanf("%d", &tmp);
    bag.insert(tmp);
  }
  while(que.size() && bag.size()){
    pair<int,int> tmp = que.top();
    que.pop();
    auto p = bag.lower_bound(tmp.second);
    if(p != bag.end()){
      ans+= tmp.first;
      bag.erase(p);
    }
  }
  cout<< ans<<endl;
}

박인서

곽정흠

아이디어

15이원준

박인서

곽정흠