This documentation is automatically generated by online-judge-tools/verification-helper
// verification-helper: PROBLEM https://yukicoder.me/problems/444
#include <bits/stdc++.h>
using namespace std;
#define call_from_test
#include "../../mod/mint.cpp"
#include "../../convolution/fastfouriertransform.cpp"
#include "../../convolution/arbitrarymod.cpp"
#include "../../polynomial/berlekampmassey.cpp"
#include "../../math/bostanmori.cpp"
#undef call_from_test
signed main(){
cin.tie(0);
ios::sync_with_stdio(0);
using M = Mint<int>;
using Poly = vector<M>;
ArbitraryMod<M> arb;
auto conv=[&](auto as,auto bs){return arb.multiply(as,bs);};
long long n;
cin>>n;
n--;
int p,c;
cin>>p>>c;
const int d = 606 * 13;
auto calc=[&](int l,vector<int> vs){
int m=vs.size();
vector<Poly> dp(m,Poly(d));
for(int i=0;i<m;i++) dp[i][0]=M(1);
for(int t=0;t<l;t++){
for(int i=0;i<m;i++){
for(int j=d-1;j>=0;j--){
dp[i][j]=0;
if(i) dp[i][j]+=dp[i-1][j];
if(j>=vs[i]) dp[i][j]+=dp[i][j-vs[i]];
}
}
}
return dp.back();
};
Poly cf({M(1)});
cf=conv(cf,calc(p,vector<int>({2,3,5,7,11,13})));
cf=conv(cf,calc(c,vector<int>({4,6,8,9,10,12})));
cf.resize(d,M(0));
Poly dp(d*3,0),as(d*3,0);
dp[0]=M(1);
for(int i=0;i<(int)dp.size();i++){
for(int j=0;j<d&&i+j<(int)dp.size();j++)
dp[i+j]+=dp[i]*cf[j];
for(int j=1;j<d&&i+j<(int)dp.size();j++)
as[i]+=dp[i+j];
}
as.resize(d*2);
BostanMori<M> seq(conv);
cout<<seq.build(n,as,berlekamp_massey(as))<<endl;
return 0;
}
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle
bundler.update(path)
File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 401, in update
self.update(self._resolve(pathlib.Path(included), included_from=path))
File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 400, in update
raise BundleErrorAt(path, i + 1, "unable to process #include in #if / #ifdef / #ifndef other than include guards")
onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: convolution/arbitrarymod.cpp: line 6: unable to process #include in #if / #ifdef / #ifndef other than include guards