結果
| 問題 |
No.3360 平方根の整数倍の整数部分
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-11-14 23:22:28 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 512 bytes |
| コンパイル時間 | 1,743 ms |
| コンパイル使用メモリ | 195,900 KB |
| 実行使用メモリ | 7,720 KB |
| 最終ジャッジ日時 | 2025-11-14 23:22:31 |
| 合計ジャッジ時間 | 2,915 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 WA * 8 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll calc(ll m, ll n, ll sqn = -1) {
ll d = m / sqrt(n);
if (sqn != -1) {
d = m / sqn;
}
return m - d;
}
int main () {
ll N, M;
cin >> N >> M;
if (N == 1) {
puts("NaN");
return 0;
}
ll sqn = 0;
while (sqn * sqn < N) sqn ++;
if (sqn * sqn != N) sqn = -1;
ll ok = (ll)1e7, ng = -1;
while (abs(ok - ng) > 1) {
ll mu = (ok + ng) / 2;
if (calc(mu, N, sqn) >= M) {
ok = mu;
} else {
ng = mu;
}
}
cout << ok << endl;
}