Можно ли замостить плиткой размером n на m, площадь размером a на b

Я в правильном направлении? так как решение не проходит все тесты.

#include <iostream>

using namespace std;

int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        int a,b,c,d;
        cin >> a >> b >> c >> d;
        if(!(c % b) && !(d % a) || !(d % b) && !(c % a))
        {
            cout << "YES\n";
        } else {
            cout << "NO\n";
        }
    }
}

Ответы (1 шт):

Автор решения: AR Hovsepyan

Чем ограничиваете цикл, не понятно(что за t, как вы определяете это значение?). В заголовке у вас n*m а в программе c*d. Так что я проясню: Площадь c*d можно замостить плиткой a*b если выполняется условие: if( (c * (b-1)) % r == 0 && (d * (a - 1)) % r == 0), где r = a - b. Это математически легко доказывать, и не нужен никакой цикл.

→ Ссылка