#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <cmath>
using namespace std;
int T;
int r, g, b, w;
int main() {
cin.tie(0); cout.tie(0); ios::sync_with_stdio(0);
cin >> T;
while (T--) {
cin >> r >> g >> b >> w;
int r_, g_, b_, w_;
r_ = r % 2;
g_ = g % 2;
b_ = b % 2;
w_ = w % 2;
if (r == 0 || g == 0 || b == 0) {
if (r_ + g_ + b_ + w_ == 3 || r_ + g_ + b_ + w_ == 2) cout << "No\n";
else cout << "Yes\n";
continue;
}
if (r_ + g_ + b_ + w_ != 2) {
cout << "Yes\n";
}
else cout << "No\n";
}
return 0;
}
A - Boboniu Likes to Color Balls
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <cmath>
using namespace std;
bool visit[101][101];
bool orun = true;
int N, M, r, c;
int vcount;
void prnt() {
cout << r << " " << c << "\n";
}
void move(int r_, int c_) {
r = r_;
c = c_;
if (!visit[r][c]) prnt();
visit[r][c] = true;
}
void to_tl() {
move(1, c);
move(r, 1);
}
int main() {
cin.tie(0); cout.tie(0); ios::sync_with_stdio(0);
cin >> N >> M >> r >> c;
prnt();
visit[r][c] = true;
to_tl();
while (1) {
if (orun) {
if (c + 1 <= M) move(r, c + 1);
else {
orun = false;
if (r + 1 <= N) move(r + 1, c);
else break;
}
}
else {
if (c - 1 > 0) move(r, c - 1);
else {
orun = true;
if (r + 1 <= N) move(r + 1, c);
else break;
}
}
}
return 0;
}
B - Boboniu Plays Chess
최초 위치를 Y, X라고 하자.
(1, X)로 이동한 다음 (1, 1)로 이동하면 시작 위치 (1, 1)를 제외한 모든 행의 양 끝이 방문되지 않았음이 보장된다.
이제 (1, R) > (2, R) > (2, 1) > (3, 1) > (3, R) > ... 경로로 순회하면 된다.
'알고리즘 > Codeforces' 카테고리의 다른 글
Codeforces Round #666 (Div. 2) AC (0) | 2020.08.31 |
---|---|
Educational Codeforces Round 93 (Rated for Div. 2) AB (0) | 2020.08.15 |
Codeforces Round #663 (Div. 2) ABC (0) | 2020.08.10 |
Codeforces Round #662 (Div. 2) ABC (0) | 2020.08.08 |
Codeforces Round #660 (Div. 2) AB (0) | 2020.08.06 |
댓글