提出 #27243869


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;

const int N = 1e6 + 10, P = 998244353;
int p[N], fac[N], pcnt;
long long cnt[N], haji;
long long fuck[N];
long long n, k, g, q, ans;

int main () {
	/*  */
//	freopen ("g.in", "r", stdin);
//	freopen ("g.out", "w", stdout);
	scanf ("%lld%lld", &n, &k);
	if (k > n - k) k = n - k;
	g = max ((long long)sqrt (n), k);
	// 计算n! / (n - k)!相关的质因子。 
	for (long long i = n - k + 1; i <= n; ++i)
		fuck[i - (n - k)] = i;
	for (int i = 2; i <= g; ++i) {
		if (!fac[i]) {
			fac[i] = p[++pcnt] = i;
			q = i;
			while (q <= n) {
				cnt[pcnt] += n / q - (n - k) / q - k / q;
				q = q * i;
			}
			haji = (n - k + 1) % i ? i - ((n - k + 1) % i) + n - k + 1 : n - k + 1; 
			for (; haji <= n; haji += i)
				while (fuck[haji - (n - k)] % i == 0)
					fuck[haji - (n - k)] /= i;
		}
		for (int j = 1; j <= pcnt; ++j) {
			if (i * p[j] > g || fac[i] < p[j]) break;
			fac[i * p[j]] = p[j];
		}
	}
	for (long long i = n - k + 1; i <= n; ++i)
		if (fuck[i - (n - k)] != 1) cnt[++pcnt] = 1, p[pcnt] = fuck[i - (n - k)];
	ans = cnt[1] + 1;
	for (int i = 2; i <= pcnt; ++i)
		ans = 1ll * ans * (cnt[i] + 1) % P;
	printf ("%d\n", ans);

	return 0;
}

提出情報

提出日時
問題 G - Divisors of Binomial Coefficient
ユーザ NGC5457
言語 C++ (GCC 9.2.1)
得点 600
コード長 1243 Byte
結果 AC
実行時間 142 ms
メモリ 24672 KiB

コンパイルエラー

./Main.cpp: In function ‘int main()’:
./Main.cpp:43:12: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long long int’ [-Wformat=]
   43 |  printf ("%d\n", ans);
      |           ~^     ~~~
      |            |     |
      |            int   long long int
      |           %lld
./Main.cpp:14:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   14 |  scanf ("%lld%lld", &n, &k);
      |  ~~~~~~^~~~~~~~~~~~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 3
AC × 40
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
random_01.txt AC 10 ms 3732 KiB
random_02.txt AC 14 ms 6064 KiB
random_03.txt AC 2 ms 3740 KiB
random_04.txt AC 36 ms 10172 KiB
random_05.txt AC 2 ms 3680 KiB
random_06.txt AC 73 ms 15024 KiB
random_07.txt AC 2 ms 3684 KiB
random_08.txt AC 70 ms 14352 KiB
random_09.txt AC 3 ms 3552 KiB
random_10.txt AC 49 ms 11104 KiB
random_11.txt AC 142 ms 24656 KiB
random_12.txt AC 21 ms 5032 KiB
random_13.txt AC 3 ms 3556 KiB
random_14.txt AC 116 ms 21584 KiB
random_15.txt AC 2 ms 3616 KiB
random_16.txt AC 21 ms 5500 KiB
random_17.txt AC 77 ms 15228 KiB
random_18.txt AC 49 ms 8224 KiB
random_19.txt AC 115 ms 20224 KiB
random_20.txt AC 23 ms 5580 KiB
random_21.txt AC 135 ms 24372 KiB
random_22.txt AC 52 ms 9240 KiB
random_23.txt AC 122 ms 22408 KiB
random_24.txt AC 2 ms 3764 KiB
random_25.txt AC 16 ms 4752 KiB
random_26.txt AC 36 ms 6584 KiB
random_27.txt AC 15 ms 4884 KiB
random_28.txt AC 2 ms 3780 KiB
random_29.txt AC 2 ms 3728 KiB
random_30.txt AC 19 ms 8544 KiB
random_31.txt AC 135 ms 24672 KiB
random_32.txt AC 68 ms 15228 KiB
random_33.txt AC 23 ms 8444 KiB
random_34.txt AC 139 ms 24668 KiB
random_35.txt AC 60 ms 13752 KiB
random_36.txt AC 2 ms 3720 KiB
random_37.txt AC 2 ms 3624 KiB
sample_01.txt AC 2 ms 3660 KiB
sample_02.txt AC 2 ms 3636 KiB
sample_03.txt AC 137 ms 24604 KiB