library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub beet-aizu/library

:heavy_check_mark: test/yukicoder/0444.test.cpp

Depends on

Code

// 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
Back to top page