結果
| 問題 | No.2613 Sum of Combination |
| コンテスト | |
| ユーザー |
Sh1n3zZ
|
| 提出日時 | 2024-01-19 22:07:18 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 4,730 bytes |
| 記録 | |
| コンパイル時間 | 2,737 ms |
| コンパイル使用メモリ | 303,360 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-09-28 04:31:05 |
| 合計ジャッジ時間 | 8,747 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 TLE * 1 |
| other | -- * 49 |
コンパイルメッセージ
main.cpp:23:39: warning: bad option '-fwhole-program' to pragma 'optimize' [-Wpragmas]
23 | #pragma GCC optimize("-fwhole-program")
| ^
main.cpp:30:41: warning: bad option '-fstrict-overflow' to pragma 'optimize' [-Wpragmas]
30 | #pragma GCC optimize("-fstrict-overflow")
| ^
main.cpp:32:41: warning: bad option '-fcse-skip-blocks' to pragma 'optimize' [-Wpragmas]
32 | #pragma GCC optimize("-fcse-skip-blocks")
| ^
main.cpp:45:51: warning: bad option '-funsafe-loop-optimizations' to pragma 'optimize' [-Wpragmas]
45 | #pragma GCC optimize("-funsafe-loop-optimizations")
| ^
main.cpp:104:27: warning: bad option '-fwhole-program' to attribute 'optimize' [-Wattributes]
104 | ll qpow(ll a, ll b, ll mod) {
| ^
main.cpp:104:27: warning: bad option '-fstrict-overflow' to attribute 'optimize' [-Wattributes]
main.cpp:104:27: warning: bad option '-fcse-skip-blocks' to attribute 'optimize' [-Wattributes]
main.cpp:104:27: warning: bad option '-funsafe-loop-optimizations' to attribute 'optimize' [-Wattributes]
main.cpp:114:16: warning: bad option '-fwhole-program' to attribute 'optimize' [-Wattributes]
114 | void init(int p) {
| ^
main.cpp:114:16: warning: bad option '-fstrict-overflow' to attribute 'optimize' [-Wattributes]
main.cpp:114:16: warning: bad option '-fcse-skip-blocks' to attribute 'optimize' [-Wattributes]
main.cpp:114:16: warning: bad option '-funsafe-loop-optimizations' to attribute 'optimize' [-Wattributes]
main.cpp:121:22: warning: bad option '-fwhole-program' to attribute 'optimize' [-Wattributes]
121 | ll C(ll n, ll m, ll p) {
| ^
main.cpp:121:22: warning: bad option '-fstrict-overflow' to attribute 'optimize' [-Wattributes]
main.cpp:121:22: warning: bad option '-fcse-skip-blocks'
ソースコード
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma G++ optimize(1)
#pragma G++ optimize(2)
#pragma G++ optimize(3)
#pragma G++ optimize("Ofast")
#pragma G++ optimize("inline")
#pragma G++ optimize("-fgcse")
#pragma G++ optimize("-fgcse-lm")
#pragma G++ optimize("-fipa-sra")
#pragma G++ optimize("-ftree-pre")
#pragma G++ optimize("-ftree-vrp")
#pragma G++ optimize("-fpeephole2")
#pragma G++ optimize("-ffast-math")
#pragma G++ optimize("-fsched-spec")
#pragma G++ optimize("unroll-loops")
#pragma G++ optimize("-falign-jumps")
#pragma G++ optimize("-falign-loops")
#pragma G++ optimize("-falign-labels")
#pragma G++ optimize("-fdevirtualize")
#pragma G++ optimize("-fcaller-saves")
#pragma G++ optimize("-fcrossjumping")
#pragma G++ optimize("-fthread-jumps")
#pragma G++ optimize("-funroll-loops")
#pragma G++ optimize("-fwhole-program")
#pragma G++ optimize("-freorder-blocks")
#pragma G++ optimize("-fschedule-insns")
#pragma G++ optimize("inline-functions")
#pragma G++ optimize("-ftree-tail-merge")
#pragma G++ optimize("-fschedule-insns2")
#pragma G++ optimize("-fstrict-aliasing")
#pragma G++ optimize("-fstrict-overflow")
#pragma G++ optimize("-falign-functions")
#pragma G++ optimize("-fcse-skip-blocks")
#pragma G++ optimize("-fcse-follow-jumps")
#pragma G++ optimize("-fsched-interblock")
#pragma G++ optimize("-fpartial-inlining")
#pragma G++ optimize("no-stack-protector")
#pragma G++ optimize("-freorder-functions")
#pragma G++ optimize("-findirect-inlining")
#pragma G++ optimize("-frerun-cse-after-loop")
#pragma G++ optimize("inline-small-functions")
#pragma G++ optimize("-finline-small-functions")
#pragma G++ optimize("-ftree-switch-conversion")
#pragma G++ optimize("-foptimize-sibling-calls")
#pragma G++ optimize("-fexpensive-optimizations")
#pragma G++ optimize("-funsafe-loop-optimizations")
#pragma G++ optimize("inline-functions-called-once")
#pragma G++ optimize("-fdelete-null-pointer-checks")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 2e5 + 5;
const int MOD = 998244353;
ll fac[MAXN], inv[MAXN];
ll qpow(ll a, ll b, ll mod) {
ll res = 1;
while(b) {
if(b & 1) res = res * a % mod;
a = a * a % mod;
b >>= 1;
}
return res;
}
void init(int p) {
fac[0] = 1;
for(int i = 1; i <= p; ++i) fac[i] = fac[i - 1] * i % p;
inv[p - 1] = qpow(fac[p - 1], p - 2, p);
for(int i = p - 2; i >= 0; --i) inv[i] = inv[i + 1] * (i + 1) % p;
}
ll C(ll n, ll m, ll p) {
if(m > n || m < 0) return 0;
return fac[n] * inv[m] % p * inv[n - m] % p;
}
ll Lucas(ll n, ll m, ll p) {
if(!m) return 1;
return C(n % p, m % p, p) * Lucas(n / p, m / p, p) % p;
}
int main() {
ll n, p;
scanf("%lld%lld", &n, &p);
init(p);
ll ans = 0;
for(ll i = 0; i <= n; ++i) {
ans = (ans + Lucas(n, i, p)) % MOD;
}
printf("%lld\n", ans);
return 0;
}
Sh1n3zZ