-
[4159] 알래스카BOJ 2021. 12. 8. 20:16
https://www.acmicpc.net/problem/4159
4159번: 알래스카
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 고속도로에 있는 충전소의 수 n이 주어진다. n은 양의 정수이다. 더슨 크릭에 있는 충전소도 n에 포함된다. 둘
www.acmicpc.net
<문제>
0에서 1422까지 가는 경우를 먼저 생각해보자.
(1422+1)*2번을 한마일씩 이동하듯 반복문을 돌린다, 현재 마일에 충전소가 있다면 무조건 충전하는것으로 간주하고,
하나의 루프가 끝나면 남은 전기를 1 감소시켜준다. 물론, 남은 전기가 없어지면 바로 IMPOSSIBLE이 답이된다.
1422에서 0으로 가는 경우엔, 위를 동일하지만, 순서만 반대로 바꿔주면 된다.
<소스코드>
123456789101112131415161718192021222324252627282930313233343536373839404142#include <bits/stdc++.h>using namespace std;int n;int main(void) {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);while (1) {cin >> n;if (n == 0) break;vector<int> v(n);int i;for (i = 0; i < n; i++) cin >> v[i];sort(v.begin(), v.end());int cur = 200, idx = 0;bool flag = true;for (i = 0; i <= 1422; i++, cur--) {if (v[idx] == i) {cur = 200;idx++;}if (cur < 0) {flag = false;goto findAns;}}idx = v.size() - 1;for (i = 1422; i >= 0; i--, cur--) {if (v[idx] == i) {cur = 200;idx--;}if (cur < 0) {flag = false;goto findAns;}}findAns:flag ? cout << "POSSIBLE\n" : cout << "IMPOSSIBLE\n";}return 0;}cs 'BOJ' 카테고리의 다른 글
[20117] 호반우 상인의 이상한 품질 계산법 (0) 2021.12.09 [2410] 2의 멱수의 합 (0) 2021.12.09 [4806] 줄 세기 (0) 2021.12.07 [3163] 떨어지는 개미 (0) 2021.12.07 [20944] 팰린드롬 척화비 (0) 2021.12.07