QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#756969#5141. Identical Parityfrankly6WA 0ms3560kbC++171.6kb2024-11-16 23:06:032024-11-16 23:06:04

Judging History

你现在查看的是最新测评结果

  • [2024-11-16 23:06:04]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3560kb
  • [2024-11-16 23:06:03]
  • 提交

answer

#include<iostream>
#include<cstdio>
using namespace std;
const int MX=100050;

int T, N, K;
int read()
{
    int r=0, f=1; char ch=getchar();
    while(ch<'0'||ch>'9') {if(ch=='-') f=-1; ch=getchar();}
    while(ch>='0'&&ch<='9') {r=r*10+ch-'0'; ch=getchar();}
    return r*f;
}
int exgcd(int a, int b, int &x, int &y)
{
    if(b==0){x=1, y=0; return a;}
    else{int tmp; int d=exgcd(b,a%b,tmp,x); y=tmp-a/b*x; return d;}
}
int main()
{
    // freopen("testdata.in","r",stdin);
    T=read();
    while(T--)
    {
        N=read(), K=read();
        if(K%2==0||N==1) cout << "Yes\n";
        else
        {
            int tx, ty;
            int a=N/K+1, b=N/K, c=N/2;
            int la=N%K, lb=K-N%K;
            int d=exgcd(a,b,tx,ty);
            if(c%d) {cout << "No\n"; continue;}
            a/=d; b/=d; c/=d;
            // cout << "a=" << a << ", b=" << b << ", c=" << c << ", x=" << tx << ", y=" << ty << '\n';
            int L1=-tx*a, R1=(N%K-tx)*a, L2=(N%K+ty-K)*b, R2=ty*b;
            // cout << "L1=" << L1 << ", R1=" << R1 << ", L2=" << L2 << ", R2=" << R2 << '\n';
            if(L1>R2||R1<L2) {cout << "No\n"; continue;}
            if(R1-L1<a*b&&R1/a/b==L1/a/b) {cout << "No\n"; continue;}
            if(R2-L2<a*b&&R2/a/b==L2/a/b) {cout << "No\n"; continue;}
            if(R1>R2&&R2/a/b!=L1/a/b) cout << "Yes\n";
            else if(R1/a/b!=L2/a/b) cout << "Yes\n";
            else cout << "No\n";
        }
    }
    return (0-0);
}
/*
    n/k full length k parts
    n-n/k :(n/k+1 same parity)
    k-(n-n/k) :(n/k same parity) 

    n/2 : even
    n-n/2 : odd
    \det <= 1
*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3560kb

input:

3
3 1
4 2
5 3

output:

No
Yes
No

result:

wrong answer expected YES, found NO [3rd token]