提出 #20381325


ソースコード 拡げる

#include <bits/stdc++.h>

using namespace std;

int main(void) {
	long long K;
	cin >> K;
	long long ans = 0;
	//A <= B <= Cのものだけ求める
	for(long long C = 1; C <= K; ++C) {
		long long K0 = min(K / C, C);
		for(long long B = 1; B <= K0; ++B) {
			long long K1 = min(K / (B * C), B);
			if(B == C) {
				if(K1 == B) {//A <= B == C
					ans += 3 * (K1 - 1) + 1;
				} else {//A < B == C
					ans += 3 * K1;
				}
			} else {
				if(K1 == B) {//A <= B < C
					ans += 6 * (K1 - 1) + 3;
				} else {//A < B < C
					ans += 6 * K1;
				}
			}
		}
	}
	cout << ans << '\n';
	return 0;
}

提出情報

提出日時
問題 A - A*B*C
ユーザ waidotto
言語 C++ (GCC 9.2.1)
得点 300
コード長 626 Byte
結果 AC
実行時間 24 ms
メモリ 3636 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 10
セット名 テストケース
Sample s1.txt, s2.txt, s3.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, s1.txt, s2.txt, s3.txt
ケース名 結果 実行時間 メモリ
01.txt AC 24 ms 3624 KiB
02.txt AC 20 ms 3444 KiB
03.txt AC 15 ms 3564 KiB
04.txt AC 7 ms 3404 KiB
05.txt AC 2 ms 3568 KiB
06.txt AC 2 ms 3396 KiB
07.txt AC 23 ms 3636 KiB
s1.txt AC 2 ms 3584 KiB
s2.txt AC 2 ms 3592 KiB
s3.txt AC 6 ms 3524 KiB