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 |
|
|
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 |