DISCO presents ディスカバリーチャンネル コードコンテスト2016 予選

Submission #7805147

Source codeソースコード

#include "bits/stdc++.h"

using namespace std;

void solve()
{
    long n, k;
    cin >> n >> k;
    vector<long> fs, cnt;
    for (long f = 1; f * f <= k; f++)
    {
        if (k % f == 0)
        {
            fs.push_back(f);
            if (f * f != k)
            {
                fs.push_back(k / f);
            }
        }
    }
    int m = fs.size();
    cnt.resize(m);
    sort(fs.begin(), fs.end());
    for (int i = 0; i < n; i++)
    {
        long x;
        cin >> x;
        x = __gcd(x, k);
        cnt[distance(fs.begin(), lower_bound(fs.begin(), fs.end(), x))]++;
    }
    long ans = 0;
    for (int i = 0; i < m; i++)
    {
        if (fs[i] * fs[i] % k == 0)
        {
            ans += cnt[i] * (cnt[i] - 1) / 2;
        }
        for (int j = i + 1; j < m; j++)
        {
            if (fs[i] * fs[j] % k == 0)
            {
                ans += cnt[i] * cnt[j];
            }
        }
    }
    cout << ans << endl;
}

int main()
{
    solve();
    return 0;
}

Submission

Task問題 C - ロト2
User nameユーザ名 egøist
Created time投稿日時
Language言語 C++14 (GCC 5.4.1)
Status状態 AC
Score得点 400
Source lengthソースコード長 1046 Byte
File nameファイル名
Exec time実行時間 108 ms
Memory usageメモリ使用量 256 KB

Test case

Set

Set name Score得点 / Max score Cases
Sample - 00_example_01.txt,00_example_02.txt,00_example_03.txt
All 400 / 400 00_example_01.txt,00_example_02.txt,00_example_03.txt,10_random_01.txt,10_random_02.txt,10_random_03.txt,10_random_04.txt,10_random_05.txt,20_max_01.txt,20_max_02.txt,20_max_03.txt,20_max_04.txt,20_max_05.txt,30_overflow_01.txt,30_overflow_02.txt,40_dmax_01.txt,40_dmax_02.txt,40_dmax_03.txt,50_prime_01.txt,50_prime_02.txt,50_prime_03.txt,60_prime_pow_01.txt,60_prime_pow_02.txt,60_prime_pow_03.txt,70_one_01.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
00_example_01.txt AC 1 ms 256 KB
00_example_02.txt AC 1 ms 256 KB
00_example_03.txt AC 1 ms 256 KB
10_random_01.txt AC 1 ms 256 KB
10_random_02.txt AC 2 ms 256 KB
10_random_03.txt AC 1 ms 256 KB
10_random_04.txt AC 1 ms 256 KB
10_random_05.txt AC 1 ms 256 KB
20_max_01.txt AC 74 ms 256 KB
20_max_02.txt AC 71 ms 256 KB
20_max_03.txt AC 91 ms 256 KB
20_max_04.txt AC 70 ms 256 KB
20_max_05.txt AC 106 ms 256 KB
30_overflow_01.txt AC 67 ms 256 KB
30_overflow_02.txt AC 67 ms 256 KB
40_dmax_01.txt AC 108 ms 256 KB
40_dmax_02.txt AC 108 ms 256 KB
40_dmax_03.txt AC 108 ms 256 KB
50_prime_01.txt AC 73 ms 256 KB
50_prime_02.txt AC 82 ms 256 KB
50_prime_03.txt AC 92 ms 256 KB
60_prime_pow_01.txt AC 92 ms 256 KB
60_prime_pow_02.txt AC 89 ms 256 KB
60_prime_pow_03.txt AC 89 ms 256 KB
70_one_01.txt AC 59 ms 256 KB