Submission #3570515
Source Code Expand
#include<cstdio> #include<cstring> #include<vector> #include<queue> #include<algorithm> #include<cmath> #include<climits> #include<string> #include<set> #include<numeric> #include<map> #include<iostream> using namespace std; #define rep(i,n) for(int i = 0;i<((int)(n));i++) #define reg(i,a,b) for(int i = ((int)(a));i<=((int)(b));i++) #define irep(i,n) for(int i = ((int)(n)-1);i>=0;i--) #define ireg(i,a,b) for(int i = ((int)(b));i>=((int)(a));i--) typedef long long ll; typedef pair<ll, ll> mp; /* */ ll gcd(ll a,ll b){ if(b==0)return a; return gcd(b,a%b); } int main(void){ ll n,k,a[200010],ans=0; map<ll,ll> m; vector<mp> d; cin>>n>>k; rep(i,n){ cin>>a[i]; m[gcd(k,a[i])]++;//約数に対応させる } //操作しやすいようにベクトルに変換 for(auto itr = m.begin(); itr != m.end(); ++itr) { d.push_back({itr->first,itr->second}); } //異なるグループから選ぶ rep(i,d.size()){ rep(j,i){ if((d[i].first*d[j].first)%k==0){ ans+=d[i].second*d[j].second; } } } //同じグループから選ぶ rep(i,d.size()){ if((d[i].first*d[i].first)%k==0){ ans+=d[i].second*(d[i].second-1)/2; } } cout<<ans<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - ロト2 |
User | RMQ |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1243 Byte |
Status | AC |
Exec Time | 109 ms |
Memory | 1920 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 | 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 | 76 ms | 1792 KB |
20_max_02.txt | AC | 73 ms | 1792 KB |
20_max_03.txt | AC | 90 ms | 1792 KB |
20_max_04.txt | AC | 73 ms | 1792 KB |
20_max_05.txt | AC | 108 ms | 1792 KB |
30_overflow_01.txt | AC | 69 ms | 1792 KB |
30_overflow_02.txt | AC | 69 ms | 1792 KB |
40_dmax_01.txt | AC | 109 ms | 1920 KB |
40_dmax_02.txt | AC | 109 ms | 1920 KB |
40_dmax_03.txt | AC | 109 ms | 1920 KB |
50_prime_01.txt | AC | 83 ms | 1792 KB |
50_prime_02.txt | AC | 84 ms | 1792 KB |
50_prime_03.txt | AC | 90 ms | 1792 KB |
60_prime_pow_01.txt | AC | 91 ms | 1792 KB |
60_prime_pow_02.txt | AC | 89 ms | 1792 KB |
60_prime_pow_03.txt | AC | 88 ms | 1792 KB |
70_one_01.txt | AC | 61 ms | 1792 KB |