提出 #16326968


ソースコード 拡げる

// dfmt off
T lread(T=long)(){return readln.chomp.to!T;}T[] lreads(T=long)(long n){return iota(n).map!((_)=>lread!T).array;}
T[] aryread(T=long)(){return readln.split.to!(T[]);}void arywrite(T)(T a){a.map!text.join(' ').writeln;}
void scan(L...)(ref L A){auto l=readln.split;foreach(i,T;L){A[i]=l[i].to!T;}}alias sread=()=>readln.chomp();
void dprint(L...)(lazy L A){debug{auto l=new string[](L.length);static foreach(i,a;A)l[i]=a.text;arywrite(l);}}
alias PQueue(T,alias l="b<a")=BinaryHeap!(Array!T,l);import std, core.bitop;
// dfmt on
void main()
{
    auto input = stdin.byLine.map!split.joiner;

    long N;
    N = input.front.to!long;
    input.popFront;

    long[] A = new long[](cast(size_t)(N));
    foreach (i; 0 .. cast(size_t)(N))
    {
        A[i] = input.front.to!long;
        input.popFront;
    }

    solve(N, A);
}

void solve(long N, long[] A)
{
    long[long] d;
    foreach (a; A)
    {
        auto f = factorize(a);
        foreach (key, value; f)
        {
            d[key] = d.get(key, 0) + 1;
        }
    }
    if (d.values.all!"a==1")
    {
        writeln("pairwise coprime");
        return;
    }
    if (A.reduce!gcd == 1)
    {
        writeln("setwise coprime");
        return;
    }
    writeln("not coprime");
}

T[U] factorize(T = long, U = long)(T x)
{
    assert(0 < x, "x is negative");
    long[long] ps;
    while ((x & 1) == 0)
        x /= 2, ps[2] = (2 in ps) ? ps[2] + 1 : 1;
    for (long i = 3; i * i <= x; i += 2)
        while (x % i == 0)
            x /= i, ps[i] = (i in ps) ? ps[i] + 1 : 1;
    if (x != 1)
        ps[x] = (x in ps) ? ps[x] + 1 : 1;
    return ps;
}

提出情報

提出日時
問題 E - Coprime
ユーザ kotet
言語 D (DMD 2.091.0)
得点 500
コード長 1630 Byte
結果 AC
実行時間 1651 ms
メモリ 57832 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 26
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All hand_01.txt, max_01.txt, max_02.txt, max_03.txt, max_04.txt, max_05.txt, max_11.txt, max_12.txt, max_13.txt, max_14.txt, max_15.txt, max_16.txt, max_17.txt, max_18.txt, pair_01.txt, pair_02.txt, pair_03.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
hand_01.txt AC 10 ms 3620 KiB
max_01.txt AC 161 ms 57616 KiB
max_02.txt AC 1651 ms 55196 KiB
max_03.txt AC 1055 ms 57832 KiB
max_04.txt AC 1118 ms 55128 KiB
max_05.txt AC 284 ms 15788 KiB
max_11.txt AC 276 ms 22604 KiB
max_12.txt AC 172 ms 57592 KiB
max_13.txt AC 291 ms 15824 KiB
max_14.txt AC 288 ms 15896 KiB
max_15.txt AC 286 ms 15780 KiB
max_16.txt AC 291 ms 15764 KiB
max_17.txt AC 289 ms 15812 KiB
max_18.txt AC 289 ms 15772 KiB
pair_01.txt AC 289 ms 15776 KiB
pair_02.txt AC 288 ms 15856 KiB
pair_03.txt AC 290 ms 15828 KiB
random_01.txt AC 102 ms 7248 KiB
random_02.txt AC 85 ms 7036 KiB
random_03.txt AC 105 ms 7304 KiB
random_04.txt AC 100 ms 7436 KiB
random_05.txt AC 117 ms 7512 KiB
random_06.txt AC 104 ms 7620 KiB
sample_01.txt AC 5 ms 3624 KiB
sample_02.txt AC 2 ms 3536 KiB
sample_03.txt AC 2 ms 3640 KiB