QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#757037 | #5141. Identical Parity | ryx | Compile Error | / | / | C++23 | 2.3kb | 2024-11-16 23:39:01 | 2024-11-16 23:39:01 |
Judging History
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(){ | ^