Hoon222y

[BOJ 1781] 컵라면 본문

코딩/BOJ & 알고스팟

[BOJ 1781] 컵라면

hoon222y 2017. 8. 26. 20:05

https://www.acmicpc.net/problem/1781


그리디인것처럼 보이고 그리디로 풀면된다 .

그냥 정렬하고 최대값만 뽑았다가 개망한건 눈물 ..


주의할점은 큐에 넣어주면서 데드라인에 맞게 정답 큐 사이즈를 조절해 주면 된다는것이다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
#include <cmath>
#include <stdio.h>
 
#define INF 1e9
typedef long long ll;
using namespace std;
 
priority_queue<int> pq;
int n,a,b;
vector<pair<int,int>> v;
 
int main(){
    cin >>n;
    for(int i=0;i<n;i++){
        cin >>>>b;
        v.push_back({a,b});
    }
    sort(v.begin(),v.end());
    for(int i=0;i<n;i++){
        int dline = v[i].first;
        int cup = v[i].second;
        pq.push(-cup);
        
        while(pq.size()>dline){
            pq.pop();
        }
    }
    int ans= 0;
    while(pq.size()){
        ans -= pq.top();
        pq.pop();
    }
    cout <<ans <<endl;
    return 0;
}
cs


'코딩 > BOJ & 알고스팟' 카테고리의 다른 글

[BOJ 2458] 키 순서  (0) 2017.08.27
[BOJ 1744] 수 묶기  (0) 2017.08.27
[BOJ 3273] 두 수의 합  (0) 2017.08.24
[BOJ 11058] 크리보드  (0) 2017.08.24
[BOJ 13700] 완전범죄  (0) 2017.08.24
Comments