CF1200C

CF1200C

题意:

问内圆和外圆分别分成n、m份,每份有标号,问是否可以从一个部分走到另一个部分,12点钟位置一定有个线。

解法:

如果有一堵墙贯穿1和2,那么会使得两边不连通。这样的墙会显然出现再n或m/最大公约数的处。

CODE:

#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; 
}
posted @ 2019-08-29 20:58  西窗夜雨  阅读(177)  评论(0编辑  收藏  举报