QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#757037#5141. Identical ParityryxCompile Error//C++232.3kb2024-11-16 23:39:012024-11-16 23:39:01

Judging History

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

  • [2024-11-16 23:39:01]
  • 评测
  • [2024-11-16 23:39:01]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int a,b,x,y;
int exgcd(int a,int b,int &x,int &y)
{
    if(b==0)
    {
        x=1,y=0;
        return a;
    }
    int d=exgcd(b,a%b,x,y);
    int k=x;
    x=y;
    y=k-a/b*y;
    return d;
}

signed main(){
    int t;
    cin>>t;
    while(t--){
        int n,k;
        cin>>n>>k;
        if(n==1) cout<<"YES"<<endl;
        else if(n==2){
            if(k==1) cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
        else{
            if(n%k==0){
                if(k%2==0) cout<<"YES"<<endl;
                else cout<<"NO"<<endl;
            }
            else{
                //a<b
                a = n/k,b = a+1;
                int t = n/2;
                int d = exgcd(a,b,x,y);
                x*=t,y*=t;
                if(x<=0&&y<=0) cout<<"NO"<<endl;
                else{
                    if(x>0){
                        int l = x%b,r = k-n%k;
                        int ok = 0;
                        while(l<=r){
                            int mid = (l+r)/2;
                            int ny = (t-a*mid)/b;
                            if(ny<0) r = mid-1;
                            else if(ny>n%k) l = mid+1;
                            else {
                                ok = 1;
                                break;
                            }
                        }
                        if(ok) cout<<"YES"<<endl;
                        else cout<<"NO"<<endl;
                    }
                    else if(y>0){
                        int l = y%a,r = n%k;
                        int ok = 0;
                        while(l<=r){
                            int mid = (l+r)/2;
                            int nx = (t-b*mid)/a;
                            if(nx<0) r = mid-1;
                            else if(nx>k-n%k) l = mid+1;
                            else {
                                ok = 1;
                                break;
                            }
                        }
                        if(ok) cout<<"YES"<<endl;
                        else cout<<"NO"<<endl;
                    }
                }
            //}
            
        }
    }
    return 0;
}

详细

answer.code: In function ‘int main()’:
answer.code:82:2: error: expected ‘}’ at end of input
   82 | }
      |  ^
answer.code:20:14: note: to match this ‘{’
   20 | signed main(){
      |              ^