結果

問題 No.3088 XOR = SUM
ユーザー yuusaan
提出日時 2025-03-14 23:45:35
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 863 bytes
コンパイル時間 1,054 ms
コンパイル使用メモリ 78,880 KB
実行使用メモリ 7,324 KB
最終ジャッジ日時 2025-03-14 23:46:00
合計ジャッジ時間 22,918 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 21 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<iostream>
using namespace std;
using ll = long long;

int main(){
    int T;
    cin >> T;
    for(int testcase = 0; testcase < T; testcase++){
        ll N;
        cin >> N;
        if(N == 0){//N=0のとき、1となっているビットが無いため、場合分けして処理
            cout << 0 << " " << 0 << endl;
            continue;
        }
        for(ll j = 61;j >= 0;j--){
            if(N & (1LL << j)){
                ll A = N - (1LL << j);
                ll B = (1LL << (j-1)) - 1;
                if(A * 2 >= B){//方法1が最善なら
                    cout << (1LL << j) << " " << A << endl;
                }
                else{//方法2が最善なら
                    cout << (1LL << (j-1)) << " " << (1LL << (j-1)) - 1 << endl;
                }
                break;
            }
        }
    }
    return 0;
}
0