Index: lib/numeric/modArith.cpp ================================================================== --- lib/numeric/modArith.cpp +++ lib/numeric/modArith.cpp @@ -26,24 +26,20 @@ mint operator*(mint x, mint y) { return x*=y; } mint operator/(mint x, mint y) { return x/=y; } vector FAC_(1,1); mint FAC(LL n) { while( FAC_.size()<=n ) FAC_.push_back( FAC_.back()*FAC_.size() ); return FAC_[n]; } mint C(LL n, LL k) { return k<0 || n > CP_(2001); +vector< vector > CP_; // Pascal's triangle: if O(1) nCk is needed. mint C(LL n, LL k) { - if(CP_[0].empty()) { - CP_[0].push_back(1); - for(int nn=1; nn(nn+1,1)); + for(int kk=1; kk