結果
問題 | No.2963 Mecha DESU |
ユーザー |
|
提出日時 | 2025-02-28 15:50:04 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 116 ms / 2,000 ms |
コード長 | 704 bytes |
コンパイル時間 | 2,251 ms |
コンパイル使用メモリ | 193,208 KB |
実行使用メモリ | 11,616 KB |
最終ジャッジ日時 | 2025-02-28 15:50:12 |
合計ジャッジ時間 | 7,780 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 57 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:25:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 25 | scanf("%d%d%d",&n,&m,&k); | ~~~~~^~~~~~~~~~~~~~~~~~~ main.cpp:29:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 29 | scanf("%d",&x); | ~~~~~^~~~~~~~~
ソースコード
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int INF=0x3f3f3f3f;const ll LLINF=0x3f3f3f3f3f3f3f3fLL;const int MAX=1e6+10;const int mod=998244353;ll qpow(ll a,ll b){ll res=1;while(b>0){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;}ll inv(ll x){return qpow(x,mod-2);}int cnt[MAX],res[MAX];int main(){int n,m,k,i,j,x;ll fz,fm;scanf("%d%d%d",&n,&m,&k);for(i=1;i<=n;i++) cnt[i]=res[i]=0;for(i=1;i<=m;i++){scanf("%d",&x);cnt[x]++;}for(i=1;i<=n;i++){for(j=i;j<=n;j+=i) res[j]+=cnt[i];}fz=0;fm=qpow(m,k);for(i=1;i<=n;i++){fz=(fz+fm-qpow(m-res[i],k)+mod)%mod;}printf("%lld\n",fz*inv(fm)%mod);return 0;}