結果

問題 No.862 XORでX
ユーザー tentententen
提出日時 2021-03-02 12:08:02
言語 Java21
(openjdk 21)
結果
WA  
実行時間 -
コード長 2,358 bytes
コンパイル時間 2,456 ms
コンパイル使用メモリ 79,488 KB
実行使用メモリ 63,360 KB
最終ジャッジ日時 2024-10-03 01:40:32
合計ジャッジ時間 12,269 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 135 ms
53,800 KB
testcase_01 AC 138 ms
54,080 KB
testcase_02 AC 137 ms
54,132 KB
testcase_03 AC 133 ms
53,884 KB
testcase_04 AC 137 ms
53,684 KB
testcase_05 AC 138 ms
53,992 KB
testcase_06 AC 137 ms
53,924 KB
testcase_07 AC 135 ms
54,080 KB
testcase_08 AC 165 ms
54,204 KB
testcase_09 AC 164 ms
54,180 KB
testcase_10 AC 164 ms
53,712 KB
testcase_11 AC 164 ms
54,012 KB
testcase_12 AC 120 ms
52,816 KB
testcase_13 AC 132 ms
54,036 KB
testcase_14 AC 133 ms
53,944 KB
testcase_15 AC 132 ms
53,844 KB
testcase_16 AC 237 ms
61,952 KB
testcase_17 AC 237 ms
61,396 KB
testcase_18 AC 236 ms
60,964 KB
testcase_19 AC 241 ms
61,920 KB
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 AC 250 ms
61,324 KB
testcase_25 AC 250 ms
61,336 KB
testcase_26 AC 250 ms
61,156 KB
testcase_27 WA -
testcase_28 AC 249 ms
61,316 KB
testcase_29 AC 252 ms
61,604 KB
testcase_30 WA -
testcase_31 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int x = sc.nextInt();
        HashSet<Integer> used = new HashSet<>();
        ArrayList<Integer> ans = new ArrayList<>();
        int mod = (n - 1) % 4;
        if (mod == 0) {
            used.add(x);
            ans.add(x);
        } else if (mod == 1) {
            if (x == 1) {
                used.add(x ^ 2);
                ans.add(x ^ 2);
                used.add(2);
                ans.add(2);
            } else {
                used.add(x ^ 1);
                ans.add(x ^ 1);
                used.add(1);
                ans.add(1);
            }
        } else if (mod == 2) {
            if (x == 1) {
                used.add(100002);
                ans.add(100002);
                used.add(100001);
                ans.add(100001);
                used.add(2);
                ans.add(2);
            } else {
                used.add(x ^ 1);
                ans.add(x ^ 1);
                used.add(100002);
                ans.add(100002);
                used.add(100003);
                ans.add(100003);
            }
        } else {
            if (x == 1) {
                used.add(100001);
                ans.add(100001);
                used.add(100002);
                ans.add(100002);
                used.add(4);
                ans.add(4);
                used.add(6);
                ans.add(6);
            } else {
                used.add(100003);
                ans.add(100003);
                used.add(100002);
                ans.add(100002);
                used.add(x);
                ans.add(x);
                used.add(1);
                ans.add(1);
            }
        }
        int idx = 1;
        while (ans.size() < n) {
            int base = (idx << 2);
            idx++;
            if (used.contains(base) || used.contains(base + 1) || used.contains(base + 2) || used.contains(base + 3)) {
                continue;
            }
            ans.add(base);
            ans.add(base + 1);
            ans.add(base + 2);
            ans.add(base + 3);
        }
        StringBuilder sb = new StringBuilder();
        for (int y : ans) {
            sb.append(y).append("\n");
        }
        System.out.print(sb);
    }
}
0