Submission #967488


Source Code Expand

#include "bits/stdc++.h"
using namespace std;

#define int long long
#define DEBUG 0
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define rrep(i,a,b) for(int i=(b)-1;i>=(a);i--)
#define all(a) (a).begin(),(a).end()
#define dump(o) if(DEBUG){cerr<<#o<<" "<<o<<endl;}
#define dumpc(o) if(DEBUG){cerr<<#o; for(auto &e:(o))cerr<<" "<<e;cerr<<endl;}
using ll = long long; using ull = unsigned long long; using pii = pair<int, int>;
static const int INF = 0x3f3f3f3f; static const long long INFL = 0x3f3f3f3f3f3f3f3fLL;
static const int MOD = 1e9 + 7;

//最大公約数
int gcd(int x, int y) { return y ? gcd(y, x%y) : x; }

//約数を求める 未ソート
vector<int> divisor(int x) {
	vector<int> ret;
	int i;
	for (i = 1; i*i < x; i++) {
		if (x%i)continue;
		ret.emplace_back(i);
		ret.emplace_back(x / i);
	}
	if (i*i == x)ret.emplace_back(i);
	return ret;
}

signed main() {
	int N, K; cin >> N >> K;
	vector<int> d = divisor(K);
	dumpc(d);
	map<int, int> mp;
	rep(i, 0, d.size()) {
		mp[d[i]] = 0;
	}

	vector<int> A(N);
	rep(i, 0, N) {
		cin >> A[i];
		mp[gcd(A[i], K)]++;
	}

	ll cnt = 0;
	rep(i, 0, d.size()) {
		rep(j, i, d.size()) {
			if (d[i] * d[j] % K == 0) {
				if (i == j)cnt += mp[d[i]] * (mp[d[i]] - 1) / 2;
				else cnt += mp[d[i]] * mp[d[j]];
			}
		}
	}
	cout << cnt << endl;
	return 0;
}

Submission Info

Submission Time
Task C - ロト2
User minaminao
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1364 Byte
Status AC
Exec Time 127 ms
Memory 2048 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 25
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt, 00_example_03.txt
All 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
Case Name Status Exec Time Memory
00_example_01.txt AC 2 ms 256 KB
00_example_02.txt AC 2 ms 384 KB
00_example_03.txt AC 2 ms 256 KB
10_random_01.txt AC 3 ms 256 KB
10_random_02.txt AC 3 ms 256 KB
10_random_03.txt AC 2 ms 256 KB
10_random_04.txt AC 3 ms 384 KB
10_random_05.txt AC 2 ms 256 KB
20_max_01.txt AC 76 ms 1920 KB
20_max_02.txt AC 74 ms 1792 KB
20_max_03.txt AC 94 ms 1792 KB
20_max_04.txt AC 73 ms 1920 KB
20_max_05.txt AC 109 ms 1792 KB
30_overflow_01.txt AC 70 ms 1792 KB
30_overflow_02.txt AC 70 ms 1792 KB
40_dmax_01.txt AC 119 ms 1920 KB
40_dmax_02.txt AC 127 ms 1920 KB
40_dmax_03.txt AC 119 ms 2048 KB
50_prime_01.txt AC 76 ms 1792 KB
50_prime_02.txt AC 86 ms 1792 KB
50_prime_03.txt AC 95 ms 1920 KB
60_prime_pow_01.txt AC 95 ms 1792 KB
60_prime_pow_02.txt AC 93 ms 1792 KB
60_prime_pow_03.txt AC 93 ms 1920 KB
70_one_01.txt AC 63 ms 1792 KB