제4회 가톨릭대학교 프로그래밍 경진대회 (CCPC) 풀이
A   [BOJ 25165] 영리한 아리의 포탈 타기
B   [BOJ 25166] 배고픈 아리의 샌드위치 구매하기
C   [BOJ 25167] 이상한 아리의 채점
F   [BOJ 25170] 명랑한 아리의 외출
H   [BOJ 25172] 꼼꼼한 쿠기의 졸업여행
I   [BOJ 25174] 힘겨운 쿠기의 식당 개업기

1. 문제Permalink

25165. 영리한 아리의 포탈 타기 (제4회 가톨릭대학교 프로그래밍 경진대회 (CCPC) A번)

백준 25165번 - 영리한 아리의 포탈 타기 (https://www.acmicpc.net/problem/25165)

2. 풀이Permalink

boj-25165

다음 그림에서 볼 수 있듯이, D = 0, N % 2 = 0인 경우와 D = 1, N % 2 = 1인 경우는 부하 몬스터가 어디에 있든 아리가 마주칠 수밖에 없음을 알 수 있다. (부하 몬스터는 문제 조건 2SrN에 의해서 첫 번째 행에는 존재할 수 없다.)

또한, D = 0, N % 2 = 1인 경우와 D = 1, N % 2 = 0인 경우는 빨간색 구간에 부하 몬스터가 위치할 경우, 아리가 부하 몬스터를 마주치지 않는다. 빨간색 구간은 Sr=N인 경우이다. (문제 조건에 의해서 부하 몬스터는 (N,M)에는 존재할 수 없다.)

3. 채점 결과Permalink

boj-25165

4. 회고Permalink

.

5. 코드Permalink

#include <bits/stdc++.h>
using namespace std;
#define FASTIO cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define ROF(i,a,b) for(int i=(a);i>=(b);i--)
#define ll long long int
#define pii pair<int, int>
#define PQ priority_queue
#define LEN(v) int(v.size())
#define ALL(v) v.begin(),v.end()
#define INF 2e9
#define LINF 1e18
int main() {
FASTIO;
int N, M;
int Ac, D;
int Sr, Sc;
cin >> N >> M;
cin >> Ac >> D;
cin >> Sr >> Sc;
bool flag = false;
if (D == 0) {
if (N % 2 == 0) {
flag = true;
}
else if (N % 2 == 1) {
flag = (Sr != N);
}
}
else if (D == 1) {
if (N % 2 == 0) {
flag = (Sr != N);
}
else if (N % 2 == 1) {
flag = true;
}
}
cout << (flag ? "NO..." : "YES!");
return 0;
}

댓글남기기