Consideriamo il caso in cui una delle dimensioni della griglia è pari. Supponiamo, ad esempio, che (il numero di righe) sia pari. In questo caso, la permutazione degli studenti può essere eseguita nel modo seguente:
Se e sono entrambi dispari, allora eseguire la permutazione è impossibile.
Consideriamo la griglia colorata come una scacchiera: alcune celle sono bianche, altre nere. Quando un banco viene spostato, un banco che si trovava su una cella nera deve passare a una cella bianca, e viceversa. Perché la permutazione di tutti i banchi sia possibile, il numero di celle bianche e nere deve essere uguale. Di conseguenza, il numero totale di banchi deve essere pari.
Tuttavia, quando e sono dispari, il numero totale di banchi n \times m è un numero dispari, il che rende impossibile la permutazione.
Implementazione dell'algoritmo
Leggiamo il numero di test .
scanf("%d", &t);
while (t--)
{Leggiamo i dati di input di ciascun test.
scanf("%d %d", &n, &m);Se e sono dispari, allora restituiamo la risposta "NO".
if (n % 2 == 1 && m % 2 == 1)
puts("NO");Altrimenti restituiamo la risposta "YES".
else
puts("YES");
}