#pragma once
#include"library/datastructure/FenwickTree.hpp"namespacefactorial_number_system{// std::vector<int> で表す// v[i]*i! の総和を表現している(0<=v[i]<=i)// 特に v[0]=0 は確定// N 桁の階乗進数 K に対して、N の順列で 0-indexed K 番目を返すstaticstd::vector<int>to_permutation(conststd::vector<int>&v){intN=v.size();std::vector<int>p(N);FenwickTree<GroupAdd<int>>ft(std::vector<int>(N,1));for(inti=0;i<N;i++){p[i]=ft.kth(v[N-1-i]);ft.add(p[i],-1);}returnp;}// N の順列が 0-indexed K 番目であるとき、N 桁の階乗進数 K を返すstaticstd::vector<int>to_factorial(conststd::vector<int>&p){intN=p.size();std::vector<int>v(N);FenwickTree<GroupAdd<int>>ft(std::vector<int>(N,1));for(inti=0;i<N;i++){intk=ft.sum(p[i]);v[N-1-i]=k;ft.add(p[i],-1);}returnv;}// N 桁の階乗進数の和 mod N!std::vector<int>sum(std::vector<int>p,conststd::vector<int>&q){intN=p.size();assert(q.size()==N);for(inti=0;i<N;i++){p[i]+=q[i];if(p[i]>i){p[i]-=i+1;if(i+1<N)p[i+1]++;}}returnp;}// sum(p,q)=0 となる q を返すstd::vector<int>inv(std::vector<int>p){intN=p.size();std::vector<int>q(N);for(inti=0;i<N;i++){if(p[i]){q[i]=i+1-p[i];if(i+1<N)p[i+1]++;}elseq[i]=0;}returnq;}}// namespace factorial_number_system
Traceback(mostrecentcalllast):File"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/onlinejudge_verify/documentation/build.py",line71,in_render_source_code_statbundled_code=language.bundle(stat.path,basedir=basedir,options={'include_paths':[basedir]}).decode()~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/onlinejudge_verify/languages/cplusplus.py",line187,inbundlebundler.update(path)~~~~~~~~~~~~~~^^^^^^File"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py",line401,inupdateself.update(self._resolve(pathlib.Path(included),included_from=path))~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py",line401,inupdateself.update(self._resolve(pathlib.Path(included),included_from=path))~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py",line312,inupdateraiseBundleErrorAt(path,i+1,"#pragma once found in a non-first line")onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt:library/algebra/group/Concepts.hpp:line3:#pragmaoncefoundinanon-firstline