Recent Posts
Notice
No Rules Rules
연료 채우기 (feat. 백준, 1826번) 본문
728x90
반응형
연료 채우기
https://www.acmicpc.net/problem/1826
1826번: 연료 채우기
첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경
www.acmicpc.net
반응형
// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(false), cin.tie(NULL);
register int N, L, P, cnt = 0;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q; // 거리, 연료양 (거리 오름차순)
priority_queue<int> fuel; // 연료양 (내림차순)
cin >> N;
for(register int n = 0, a, b; n < N; ++n)
cin >> a >> b, q.push(make_pair(a, b));
cin >> L >> P;
while(P < L){
while(!q.empty()){
auto p = q.top();
if(p.first > P)
break;
fuel.push(p.second);
q.pop();
}
if(fuel.empty()){
cnt = -1;
break;
}
P += fuel.top();
fuel.pop();
++cnt;
}
cout << cnt;
return 0;
}
// *&)*@*
이전 "보석 도둑" 과 유사한 문제입니다.
보석 도둑 (feat. 백준, 1202번)
보석 도둑 https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다..
kim519620.tistory.com
- 현재 보유중인 연료를 기준으로 갈 수 있는 주유소를 모두 수집합니다.
- 위에서 수집한 주유소 중 가장 연료양이 큰 주유소를 선택합니다.
- 1,2번을 반복하며 도착점 L에 도달했는지를 확인합니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
에디터 (feat. 백준, 1406번) (0) | 2022.09.20 |
---|---|
숫자의 신 (feat. 백준, 1422번) (0) | 2022.09.20 |
책 나눠주기 (feat. 백준, 9576번) (0) | 2022.09.20 |
보석 도둑 (feat. 백준, 1202번) (0) | 2022.09.20 |
카드 정렬하기 (feat. 백준, 1715번) (0) | 2022.09.20 |
Comments