Розглянемо випадок, коли один з розмірів сітки парний. Нехай, наприклад, (кількість рядків) — парне. У цьому випадку перестановку учнів можна виконати наступним чином:
Якщо та непарні, то виконати перестановку неможливо.
Розглянемо сітку, розфарбовану у шаховому порядку: одні клітинки — білі, інші — чорні. При переміщенні парта, що стояла на чорній клітинці, повинна перейти на білу, і навпаки. Щоб перестановка всіх парт була можливою, кількість білих та чорних клітинок повинна бути однаковою. Отже, загальна кількість парт повинна бути парною.
Однак при непарних та загальна кількість парт n \times m є непарним числом, що робить перестановку неможливою.
Реалізація алгоритму
Читаємо кількість тестів .
scanf("%d", \&t);
while (t--)
{Читаємо вхідні дані кожного тесту.
scanf("%d %d", \&n, \&m);Якщо та непарні, то виводимо відповідь "NO".
if (n % 2 == 1 \&\& m % 2 == 1)
puts("NO");Інакше виводимо відповідь "YES".
else
puts("YES");
}