CF1200C

CF1200C

Значение вопросов:

Q разделены на внутреннюю и внешнюю окружность п, м части, каждая позицию попросила, если могут перейти от одной части к другой, должна быть линией 12:00.

Решение:

Если есть через стену 1 и 2, так что стороны не общаются. Тогда при п или м / общий знаменатель таких стен будет четко появляться.

КОД:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std; 

#define LL long long 

LL n,m,q;

inline LL gcd(LL a,LL b) {
    return !b ? a : gcd(b,a%b);
}
 
int main() { 
    scanf("%lld%lld%lld",&n,&m,&q); 
    LL G = gcd(n, m); 
    LL nn = n / G, mm = m / G; 
    while (q--) {
        LL x1, y1, x2, y2; 
        scanf("%lld%lld%lld%lld",&x1,&y1,&x2,&y2); 
        y1--, y2--; 
        LL ans1, ans2; 
        if(x1 == 1) ans1 = y1 / nn; 
        else ans1 = y1 / mm; 
        if(x2 == 1) ans2 = y2 / nn; 
        else ans2 = y2 / mm; 
        if(ans1 == ans2) puts("YES"); 
        else puts("NO"); 
    }
    //system("pause");
    return 0; 
}

рекомендация

отwww.cnblogs.com/Repulser/p/11432007.html