QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#662819 | #5141. Identical Parity | youthpaul | WA | 7ms | 3656kb | C++20 | 1.7kb | 2024-10-21 10:53:34 | 2024-10-21 10:53:36 |
Judging History
answer
#include<bits/stdc++.h>
#define fore(i,l,r) for(int i=(int)(l);i<(int)(r);++i)
#define fi first
#define se second
#define endl '\n'
#define ull unsigned long long
#define ALL(v) v.begin(), v.end()
#define Debug(x, ed) std::cerr << #x << " = " << x << ed;
const int INF=0x3f3f3f3f;
const long long INFLL=1e18;
typedef long long ll;
ll exgcd(ll a, ll b, ll& x, ll& y){
if(!b) {
x = 1;
y = 0;
return a;
}
ll d = exgcd(b, a % b, y, x);
y -= a / b * x;
return d;
}
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout.tie(nullptr);
int t;
std::cin >> t;
int T = t;
int tot = 0;
while(t--){
int n, k;
std::cin >> n >> k;
ll x = 0, y = 0;
ll a = n / k, b = (n + k - 1) / k;
ll c = n / 2;
++tot;
if(T > 100 && tot == 125) std::cout << "---> " << n << ' ' << k << endl;
if(T > 100) continue;
if(a == b){
std::cout << (c % a == 0 ? "Yes" : "No") << endl;
continue;
}
// if((c - (a + 1) * (n % k) + a - 1) / a <= k - n % k) std::cout << "Yes\n";
// else std::cout << "No\n";
ll l = (c - (a + 1) * (n % k) + a - 1) / a;
// std::cerr << l << endl;
ll d = exgcd(a, b, x, y);
x = (x * c % b + b) % b;
// std::cerr << x << endl;
ll m = (l - x + b - 1) / b;
x = x + b * m;
// y = (c - x * a) / b;
// std::cerr << x << ' ' << y << endl;
if(x <= std::min(c / a, ((ll)k - n % k))) std::cout << "Yes\n";
else std::cout << "No\n";
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3656kb
input:
3 3 1 4 2 5 3
output:
No Yes Yes
result:
ok 3 token(s): yes count is 2, no count is 1
Test #2:
score: -100
Wrong Answer
time: 7ms
memory: 3560kb
input:
100000 1 1 2 1 2 2 3 1 3 2 3 3 4 1 4 2 4 3 4 4 5 1 5 2 5 3 5 4 5 5 6 1 6 2 6 3 6 4 6 5 6 6 7 1 7 2 7 3 7 4 7 5 7 6 7 7 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 10 10 11 1 11 2 11 3 11 4 11 5 11 6 11 7 11 8 11 9 11 10 11 11 12 1 ...
output:
---> 16 5
result:
wrong output format YES or NO expected, but ---> found [1st token]