結果

問題 No.2132 1 or X Game
ユーザー umimelumimel
提出日時 2022-11-25 23:13:23
言語 C++14
(gcc 13.2.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 1,018 bytes
コンパイル時間 1,493 ms
コンパイル使用メモリ 165,736 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-04-10 04:18:10
合計ジャッジ時間 8,657 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
#define drep(i, cc, n) for (ll i = (cc); i <= (n); ++i)
#define rep(i, n) drep(i, 0, n - 1)
#define all(a) (a).begin(), (a).end()
#define pb push_back
#define fi first
#define se second

const ll MOD = 998244353;
const ll INF = 1LL << 60;
const ll MAX_N = 2e5;

ll solve(){
    ll n, x;
    cin >> n >> x;

    if(x%2 == 0){
        if(n < x){
            return ((n+1)/2)%MOD;
        }else{
            ll ans = x/2;
            ll q = n/x - 1;
            ll r = n%x;
            ans += q*(x/2) + r/2 + 1;
            return ans%MOD;
        }
    }else{
        if(n < x){
            return ((n+1)/2)%MOD;
        }else{
            ll ans = x/2;
            ll q = n/x - 1;
            ll r = n%x;
            ans += q*((x+1)/2) + r/2 + 1;
            return ans%MOD;
        }
    }
}

int main(){
    ll t;
    cin >> t;

    vector<ll> ans(t);
    rep(i, t) ans[i] = solve();
    rep(i, t) cout << ans[i] << endl;
}
0