Codeforces Round #139 (Div. 2) A : Dice Tower
問題概要
サイコロ(2種類ある)のタワーがある。見えている2面とてっぺんの面が与えられるので矛盾がないか判定する問題。
解法
てっぺんの数とその7の補数が側面で見えたらダメ。見えている2面の和が7になったらダメ。
acceptされたコード
#include <cstdio> using namespace std; const int MAX_N = 100; int N, top; int xs[MAX_N], ys[MAX_N]; void init() { scanf("%d%d", &N, &top); for (int i = 0; i < N; ++i) { scanf("%d%d", xs+i, ys+i); } } bool solve() { bool ok = true; for (int i = 0; i < N; ++i) { ok &= !(xs[i] == ys[i] || xs[i] + ys[i] == 7); ok &= !(xs[i] == top || xs[i] == 7 - top); ok &= !(ys[i] == top || ys[i] == 7 - top); } return ok; } int main() { init(); puts(solve() ? "YES" : "NO"); return 0; }