提出 #49132464
ソースコード 拡げる
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,p,ans,a[200005],lw[200005];
bool qpow(__int128 a,int n){
__int128 ans=1;
while(n){
if(n&1) ans*=a,ans%=p;
a*=a,a%=p,n>>=1;
}
return ans==1;
}
signed main(){
cin>>n>>p;
for(int i=1;i<=n;i++) cin>>a[i];
vector<int> fac;
int tmp=p-1;
for(int j=2;j*j<=tmp;j++) while(tmp%j==0) fac.push_back(j),tmp/=j;
if(tmp>1) fac.push_back(tmp);
for(int i=1;i<=n;i++){
lw[i]=p-1;
for(auto nx:fac) if(qpow(a[i],lw[i]/nx)) lw[i]/=nx;
}
map<int,int> mp;
for(int i=1;i<=n;i++) mp[lw[i]]++;
for(auto v:mp) for(auto u:mp) if(v.first%u.first==0) ans+=v.second*u.second;
cout<<ans;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | G - Discrete Logarithm Problems |
| ユーザ | FReQuenter |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 600 |
| コード長 | 682 Byte |
| 結果 | AC |
| 実行時間 | 2133 ms |
| メモリ | 7244 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| random_01.txt | AC | 1 ms | 3472 KiB |
| random_02.txt | AC | 2 ms | 3548 KiB |
| random_03.txt | AC | 1 ms | 3472 KiB |
| random_04.txt | AC | 1 ms | 3484 KiB |
| random_05.txt | AC | 1 ms | 3588 KiB |
| random_06.txt | AC | 1 ms | 3516 KiB |
| random_07.txt | AC | 1 ms | 3472 KiB |
| random_08.txt | AC | 1 ms | 3524 KiB |
| random_09.txt | AC | 1 ms | 3464 KiB |
| random_10.txt | AC | 1 ms | 3592 KiB |
| random_11.txt | AC | 198 ms | 6496 KiB |
| random_12.txt | AC | 151 ms | 5724 KiB |
| random_13.txt | AC | 372 ms | 6616 KiB |
| random_14.txt | AC | 109 ms | 4496 KiB |
| random_15.txt | AC | 451 ms | 6624 KiB |
| random_16.txt | AC | 116 ms | 4076 KiB |
| random_17.txt | AC | 529 ms | 6588 KiB |
| random_18.txt | AC | 380 ms | 6508 KiB |
| random_19.txt | AC | 491 ms | 6580 KiB |
| random_20.txt | AC | 228 ms | 5552 KiB |
| random_21.txt | AC | 1 ms | 3512 KiB |
| random_22.txt | AC | 1 ms | 3452 KiB |
| random_23.txt | AC | 1 ms | 3576 KiB |
| random_24.txt | AC | 1 ms | 3480 KiB |
| random_25.txt | AC | 250 ms | 6732 KiB |
| random_26.txt | AC | 96 ms | 4188 KiB |
| random_27.txt | AC | 551 ms | 6696 KiB |
| random_28.txt | AC | 183 ms | 5700 KiB |
| random_29.txt | AC | 376 ms | 6576 KiB |
| random_30.txt | AC | 9 ms | 3560 KiB |
| random_31.txt | AC | 1974 ms | 7124 KiB |
| random_32.txt | AC | 1839 ms | 7192 KiB |
| random_33.txt | AC | 2120 ms | 7232 KiB |
| random_34.txt | AC | 2099 ms | 7244 KiB |
| random_35.txt | AC | 2133 ms | 7220 KiB |
| sample_01.txt | AC | 1 ms | 3656 KiB |
| sample_02.txt | AC | 1 ms | 3468 KiB |
| sample_03.txt | AC | 1 ms | 3660 KiB |