結果
問題 |
No.2177 Recurring ab
|
ユーザー |
![]() |
提出日時 | 2024-12-02 19:59:02 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 837 bytes |
コンパイル時間 | 2,112 ms |
コンパイル使用メモリ | 193,220 KB |
最終ジャッジ日時 | 2025-02-26 10:39:50 |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; bool func(ll n, ll p, ll a, ll b){ return (p * p < n * (p * a + b) + 1); } int main(){ ll n; cin >> n; ll ans = 0; for(ll a = 0; a < 10; ++a){ for(ll b = 0; b < 10; ++b){ if(a == b){ continue; } ll p_min = max(a, b) + 1; if(!func(n, p_min, a, b)){ continue; } ll ok = p_min, ng = 1000000001; while(abs(ok - ng) > 1){ ll mid = (ok + ng) / 2; if(func(n, mid, a, b)){ ok = mid; } else{ ng = mid; } } ans += ok - p_min + 1; } } cout << ans << endl; return 0; }