結果

問題 No.1665 quotient replace
ユーザー bluemeganebluemegane
提出日時 2021-09-10 09:53:39
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 534 ms / 3,000 ms
コード長 1,586 bytes
コンパイル時間 1,124 ms
コンパイル使用メモリ 61,892 KB
実行使用メモリ 93,852 KB
最終ジャッジ日時 2023-08-30 20:18:56
合計ジャッジ時間 14,275 ms
ジャッジサーバーID
(参考情報)
judge15 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 66 ms
18,856 KB
testcase_01 AC 66 ms
18,912 KB
testcase_02 AC 54 ms
14,592 KB
testcase_03 AC 76 ms
19,104 KB
testcase_04 AC 75 ms
19,060 KB
testcase_05 AC 75 ms
19,020 KB
testcase_06 AC 79 ms
19,736 KB
testcase_07 AC 77 ms
19,108 KB
testcase_08 AC 79 ms
19,432 KB
testcase_09 AC 89 ms
21,668 KB
testcase_10 AC 232 ms
45,848 KB
testcase_11 AC 428 ms
74,844 KB
testcase_12 AC 105 ms
31,424 KB
testcase_13 AC 527 ms
89,624 KB
testcase_14 AC 524 ms
93,852 KB
testcase_15 AC 524 ms
93,588 KB
testcase_16 AC 525 ms
93,688 KB
testcase_17 AC 534 ms
93,712 KB
testcase_18 AC 57 ms
20,712 KB
testcase_19 AC 54 ms
20,728 KB
testcase_20 AC 55 ms
22,824 KB
testcase_21 AC 54 ms
22,684 KB
testcase_22 AC 54 ms
20,684 KB
testcase_23 AC 54 ms
18,728 KB
testcase_24 AC 55 ms
20,688 KB
testcase_25 AC 55 ms
20,720 KB
testcase_26 AC 78 ms
25,212 KB
testcase_27 AC 77 ms
27,480 KB
testcase_28 AC 86 ms
27,016 KB
testcase_29 AC 96 ms
32,808 KB
testcase_30 AC 271 ms
61,832 KB
testcase_31 AC 369 ms
82,092 KB
testcase_32 AC 407 ms
74,624 KB
testcase_33 AC 197 ms
51,832 KB
testcase_34 AC 331 ms
71,068 KB
testcase_35 AC 305 ms
66,592 KB
testcase_36 AC 340 ms
71,408 KB
testcase_37 AC 303 ms
63,992 KB
testcase_38 AC 342 ms
67,920 KB
testcase_39 AC 263 ms
64,068 KB
testcase_40 AC 263 ms
62,056 KB
testcase_41 AC 260 ms
60,064 KB
testcase_42 AC 54 ms
20,680 KB
testcase_43 AC 67 ms
27,104 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

using System.Linq;
using System.Collections.Generic;
using System;

class Eratosthenes
{
    public int[] Table;
    public Eratosthenes(int max)
    {
        CreateTable(max);
    }
    private void CreateTable(int n)
    {
        Table = Enumerable.Range(0, n + 1).ToArray();
        if (n <= 3) return;
        for (int i = 2; i <= n; i += 2) Table[i] = 2;
        for (int p = 3; p * p <= n; p += 2)
        {
            if (Table[p] < p) continue;
            for (int x = p; x <= n; x += p) Table[x] = p;
        }
    }
    public bool IsPrime(int n) => Table[n] == n;
    public int CountPrimes(int n)
    {
        var count = 0;
        while (Table[n] != 1)
        {
            n /= Table[n];
            count++;
        }
        return count;
    }
    public List<int> PrimeFactors(int n)
    {
        var res = new List<int>();
        while (Table[n] != 1)
        {
            res.Add(Table[n]);
            n /= Table[n];
        }
        return res;
    }
}

public class Hello
{
    static void Main()
    {
        var n = int.Parse(Console.ReadLine().Trim());
        string[] line = Console.ReadLine().Trim().Split(' ');
        var a = Array.ConvertAll(line, int.Parse);
        getAns(n, a);
    }
    static void getAns(int n, int[] a)
    {
        if (n == 1) { Console.WriteLine(a[0] == 1 ? "black" : "white"); return; }
        var e = new Eratosthenes(1000000);
        var x = e.CountPrimes(a[0]) ^ e.CountPrimes(a[1]);
        for (int i = 2; i < n; i++) x ^= e.CountPrimes(a[i]);
        Console.WriteLine(x == 0 ? "black" : "white");
    }
}
0