QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#662819#5141. Identical ParityyouthpaulWA 7ms3656kbC++201.7kb2024-10-21 10:53:342024-10-21 10:53:36

Judging History

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

  • [2024-10-21 10:53:36]
  • 评测
  • 测评结果:WA
  • 用时:7ms
  • 内存:3656kb
  • [2024-10-21 10:53:34]
  • 提交

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]