728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
각 테스트 케이스에 대해 두가지 정수 N,P가 주어진다. 4의 배수인 N(4 ≤ N ≤ 1000)은 탐구영역의 전체 페이지 수이며, P(1 ≤ P ≤ N)는 선택된 한 페이지다. 입력의 마지막은 하나의 0만 주어진다.
출력
각 테스트 케이스에 대해 사라진 페이지들을 오름차순으로 출력한다.
소스코드
#include <iostream> using namespace std; int main(void) { int n, p, tmp; while (1) { cin >> n; if (n == 0) break; cin >> p; if (p % 2 == 0) { if (n / 2 >= p) cout << p - 1 << ' ' << n - p + 1 << ' ' << n - p + 2 << '\n'; else cout << n - p + 1 << ' ' << n - p + 2 << ' ' << p - 1 << '\n'; } else { if (n / 2 >= p) cout << p + 1 << ' ' << n - p << ' ' << n - p + 1 << '\n'; else cout << n - p << ' ' << n - p + 1 << ' ' << p + 1 << '\n'; } } }
Tip
수학적으로 계산하면 쉽게 풀 수 있다. 필자가 푸는 방식은 짝수 홀수, 뒷페이지 앞페이지 구분 후 계산해 출력하는 방식이다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 1350 - 진짜 공간 (0) | 2018.01.01 |
---|---|
백준] 3135 - 라디오 (0) | 2017.12.28 |
백준] 5426 - 비밀 편지(ACM-ICPC Reginoal) (0) | 2017.12.26 |
백준] 6321 - IBM 빼기 1(ACM-ICPC Regional) (0) | 2017.12.24 |
백준] 1758 - 알바생 강호 (0) | 2017.12.22 |