Submission #2375892


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define fr(i,n) for(int i=0;i<(n);++i)
#define foor(i,a,b) for(int i=(a);i<=(b);++i)
#define rf(i,n) for(int i=(n);i--;)
#define roof(i,b,a) for(int i=(b);i>=(a);--i)
#define all(x) x.begin(),x.end()
#define Sort(x) sort(all(x))
#define PQ priority_queue
#define print(x) cout<<(x)<<"\n"
typedef long long ll;
typedef pair<int,int>pii;
typedef pair<ll,ll>pll;
typedef pair<ll,int>pli;
typedef vector<int>vi;
typedef vector<ll>vl;
typedef vector<pii>vpii;
typedef vector<pll>vpll;
typedef vector<pli>vpli;
typedef map<int,int>mii;
typedef map<ll,ll>mll;
template<typename T>vector<T>&operator<<(vector<T>&v,const T t){v.push_back(t);return v;}
template<typename T>multiset<T>&operator<<(multiset<T>&m,const T t){m.insert(t);return m;}
template<typename T>set<T>&operator<<(set<T>&s,const T t){s.insert(t);return s;}
template<typename T,typename U>PQ<T,vector<T>,U>&operator<<(PQ<T,vector<T>,U>&q,const T t){q.push(t);return q;}
template<typename T,typename U>istream&operator>>(istream&s,pair<T,U>&p){return s>>p.first>>p.second;}
template<typename T>istream&operator>>(istream&s,vector<T>&v){fr(i,v.size()){s>>v[i];}return s;}
template<typename T,typename U>ostream&operator<<(ostream&s,const pair<T,U>p){return s<<p.first<<" "<<p.second;}
template<typename T>ostream&operator<<(ostream&s,const vector<T>v){for(auto a:v){s<<a<<endl;}return s;}
vpli dijkstra(const int N,const vpli E[],const int s,const ll inf){vpli d;fr(i,N)d<<pli{inf,i};d[s].first=0;PQ<pli,vpli,greater<pli>>pq;pq<<(d[s]=pli{0,s});while(pq.size()){pli a=pq.top();pq.pop();int v=a.second;if(d[v].first>=a.first){for(pli e:E[v]){if(d[v].first+e.first<d[e.second].first){d[e.second]=pli{d[v].first+e.first,v};pq<<pli{d[v].first+e.first,e.second};}}}}return d;}
ll gcd(ll a,ll b){return a?gcd(b%a,a):b;}

main(){cin.tie(0);ios::sync_with_stdio(false);
	int N,K;
	cin>>N>>K;
	mll m;
	fr(i,N){
		int A;
		cin>>A;
		++m[gcd(A,K)];
	}
	ll x=0;
	for(pll i:m){
		if(i.first*i.first%K==0){
			x+=i.second*(i.second-1)/2;
		}
		for(pll j:m){
			if(i.first<j.first&&i.first*j.first%K==0){
				x+=i.second*j.second;
			}
		}
	}
	print(x);
}

Submission Info

Submission Time
Task C - ロト2
User x20
Language C++14 (GCC 5.4.1)
Score 400
Code Size 2195 Byte
Status AC
Exec Time 69 ms
Memory 384 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 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 1 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 33 ms 256 KB
20_max_02.txt AC 31 ms 256 KB
20_max_03.txt AC 41 ms 256 KB
20_max_04.txt AC 31 ms 256 KB
20_max_05.txt AC 47 ms 256 KB
30_overflow_01.txt AC 30 ms 256 KB
30_overflow_02.txt AC 30 ms 256 KB
40_dmax_01.txt AC 69 ms 384 KB
40_dmax_02.txt AC 68 ms 384 KB
40_dmax_03.txt AC 68 ms 384 KB
50_prime_01.txt AC 32 ms 256 KB
50_prime_02.txt AC 36 ms 256 KB
50_prime_03.txt AC 40 ms 256 KB
60_prime_pow_01.txt AC 41 ms 256 KB
60_prime_pow_02.txt AC 40 ms 256 KB
60_prime_pow_03.txt AC 38 ms 256 KB
70_one_01.txt AC 23 ms 256 KB