Submission #34448377
Source Code Expand
#include <bits/stdc++.h>
const int MOD = 998244353;
typedef long long ll;
#define rep(i,a,n) for (ll i=a;i<(ll)n;i++)
const int N = 1000000;
const int P = N + 10;
bool pr[P]; // 1e6
ll a[2][N+10]; // [0] 1~k 分母, [1] n-k+1 ~ n, 分子
ll read(){ll r;scanf("%lld",&r);return r;} // read
int main(){
ll n = read();
ll k = read();
std::fill(pr+2,pr+P,true);
for(ll p=2;p*p < P;p++) if(pr[p]) for(ll i = p*p;i < P;i+=p) pr[i]=false;
ll s[] = {n-k+1,1}; // 最小的数的起始, n-k+1~n 分子部分, 1~k 分母部分
rep(o,0,2) std::iota(a[o],a[o]+k,s[o]);
ll ans = 1;
rep(p,2,P) if(pr[p]){
int power = 0; // 质因子p的幂次
rep(o,0,2) for(ll v=((s[o]+(p-1))/p)*p;v<=s[o]+k-1;v+=p) while(a[o][v-s[o]]%p==0){
power+= (const int[]){1,-1}[o]; // 对幂次影响, 分子+1, 分母-1,
a[o][v-s[o]] /= p;
}
(ans *= power+1) %= MOD;
}
rep(i,0,k) (ans *= (1+(a[0][i] != 1)))%=MOD; // > P 的质数因子
printf("%lld\n",ans);
}
Submission Info
| Submission Time | |
|---|---|
| Task | G - Divisors of Binomial Coefficient |
| User | cromarmot |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 977 Byte |
| Status | AC |
| Exec Time | 268 ms |
| Memory | 20380 KiB |
Compile Error
./Main.cpp: In function ‘ll read()’:
./Main.cpp:11:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
11 | ll read(){ll r;scanf("%lld",&r);return r;} // read
| ~~~~~^~~~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, random_36.txt, random_37.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| random_01.txt | AC | 12 ms | 4668 KiB |
| random_02.txt | AC | 14 ms | 4656 KiB |
| random_03.txt | AC | 10 ms | 4536 KiB |
| random_04.txt | AC | 41 ms | 6384 KiB |
| random_05.txt | AC | 11 ms | 4668 KiB |
| random_06.txt | AC | 121 ms | 12488 KiB |
| random_07.txt | AC | 12 ms | 4700 KiB |
| random_08.txt | AC | 91 ms | 10768 KiB |
| random_09.txt | AC | 10 ms | 4768 KiB |
| random_10.txt | AC | 76 ms | 9488 KiB |
| random_11.txt | AC | 237 ms | 20144 KiB |
| random_12.txt | AC | 26 ms | 5860 KiB |
| random_13.txt | AC | 13 ms | 4676 KiB |
| random_14.txt | AC | 217 ms | 18088 KiB |
| random_15.txt | AC | 11 ms | 4668 KiB |
| random_16.txt | AC | 41 ms | 6636 KiB |
| random_17.txt | AC | 131 ms | 13320 KiB |
| random_18.txt | AC | 81 ms | 9820 KiB |
| random_19.txt | AC | 199 ms | 18168 KiB |
| random_20.txt | AC | 38 ms | 6636 KiB |
| random_21.txt | AC | 232 ms | 20084 KiB |
| random_22.txt | AC | 93 ms | 11004 KiB |
| random_23.txt | AC | 213 ms | 18568 KiB |
| random_24.txt | AC | 12 ms | 4872 KiB |
| random_25.txt | AC | 86 ms | 10348 KiB |
| random_26.txt | AC | 93 ms | 10696 KiB |
| random_27.txt | AC | 171 ms | 16504 KiB |
| random_28.txt | AC | 78 ms | 9820 KiB |
| random_29.txt | AC | 61 ms | 8280 KiB |
| random_30.txt | AC | 10 ms | 4528 KiB |
| random_31.txt | AC | 268 ms | 20380 KiB |
| random_32.txt | AC | 100 ms | 11096 KiB |
| random_33.txt | AC | 14 ms | 4672 KiB |
| random_34.txt | AC | 245 ms | 20272 KiB |
| random_35.txt | AC | 81 ms | 9796 KiB |
| random_36.txt | AC | 12 ms | 4572 KiB |
| random_37.txt | AC | 10 ms | 4792 KiB |
| sample_01.txt | AC | 11 ms | 4596 KiB |
| sample_02.txt | AC | 10 ms | 4764 KiB |
| sample_03.txt | AC | 250 ms | 20196 KiB |