Thứ Tư, 9 tháng 1, 2019

UVa 10849 - Move the bishop (chess)

Link:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=20&page=show_problem&problem=1790
Sol:
#include <cstdio>
#include <cmath>
int main()
{ int T;
scanf ("%d", &T);
while ( T-- ) {
int t, n;
scanf ("%d %d", &t, &n);
while ( t-- ) {
int a [4];
bool possible(true);
for ( int i = 0; i < 4; i++ ) {
scanf ("%d", &a [i]);
if ( a [i] < 1 || a [i] > n ) possible = false;
}
if ( !possible ) { printf ("no move\n"); continue; }
int diff1 = std::abs (a[0] - a[2]);
int diff2 = std::abs (a[1] - a[3]);
if (a[0] == a[2] && a[1] == a[3])
printf ("0\n");
else if (diff1 == diff2)
printf ("1\n");
else if (diff1 % 2 == 0 && diff2 % 2 == 0)
printf ("2\n");
else if (diff1 % 2 == 1 && diff2 % 2 == 1)
printf ("2\n");
else
printf ("no move\n");
}
}
return 0;
}

Không có nhận xét nào:

Đăng nhận xét

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...