AOJ 0556 Tile
問題
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0556
解法
座標x,yを次のように変換する
nx = min(x, N+1-x)
ny = min(y, N+1-y)
するとタイルの左上の4分の1の範囲だけで考えることができて、
場合分けしなくてよいので楽
あとは適当にmodとる
#include <cstdio> #include <algorithm> using namespace std; int main(){ int N, K; scanf("%d %d", &N, &K); for(int i=0; i < K; i++){ int x, y; scanf("%d %d", &x, &y); x = min(x, N+1-x); y = min(y, N+1-y); int t = min(x, y); printf("%d\n", (t-1) % 3 + 1); } return 0; }