結果
| 問題 |
No.864 四方演算
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-08-16 23:37:24 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 12 ms / 1,000 ms |
| コード長 | 557 bytes |
| コンパイル時間 | 549 ms |
| コンパイル使用メモリ | 64,220 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-25 10:48:28 |
| 合計ジャッジ時間 | 1,674 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
#include <iostream>
long long f(long long sum, long long lim) {
if (lim + lim < sum) return 0;
long long ma = std::min(sum - 1, lim);
long long mi = sum - ma;
return ma - mi + 1;
}
// ab + bc + cd + da = K
// a(b + d) + c(b + d) = K
// (a + c)(b + d) = K
int main() {
long long N, K;
std::cin >> N >> K;
long long ans = 0;
for (long long div = 2; div * div <= K; ++div) {
if(K % div != 0) continue;
long long div2 = K / div;
ans += f(div, N) * f(div2, N) * (div == div2 ? 1 : 2);
}
std::cout << ans << std::endl;
}