[POJ/2431] Expedition
PS/etc.2018. 6. 27. 10:38
[2431] Expedition : http://poj.org/problem?id=2431
### Priority Queue ###
<소스코드>
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 44 45 46 47 48 49 | #include <cstdio> #include <vector> #include <queue> #include <algorithm> using namespace std; struct Exp { int dist, fuel; }; int n, L, P; bool cmp(Exp a, Exp b) { return L-a.dist < L-b.dist; } int main() { scanf("%d", &n); vector<Exp> v; for(int i=0; i<n; i++) { int d, f; scanf("%d%d", &d, &f); v.push_back((Exp){d, f}); } scanf("%d%d", &L, &P); sort(v.begin(), v.end(), cmp); int ans=0; int curL = P; priority_queue<int> pq; v.push_back((Exp){0, 0}); for(int i=0; i<=n; i++) { while(L-v[i].dist > curL && !pq.empty()) { curL += pq.top(); pq.pop(); ans++; } if(curL < L-v[i].dist) break; pq.push(v[i].fuel); } if(curL < L) ans = -1; printf("%d\n", ans); return 0; } | cs |
>> 34 번 라인이 없으면 틀렸다고 뜬다.
'PS > etc.' 카테고리의 다른 글
[POJ/1182] 먹이 사슬 (0) | 2018.07.25 |
---|---|
[카카오 코드 / 예선] 카카오프렌즈 컬러링북 (0) | 2018.05.04 |
<3-1> 나열하기 - 경우의 수 (0) | 2018.03.06 |