結果

問題 No.2066 Simple Math !
ユーザー pockyny
提出日時 2022-09-03 13:05:38
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 229 ms / 2,000 ms
コード長 626 bytes
コンパイル時間 678 ms
コンパイル使用メモリ 78,296 KB
最終ジャッジ日時 2025-02-07 02:14:14
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <atcoder/math>

using namespace std;
using namespace atcoder;
typedef long long ll;
ll gcd(ll a,ll b){
    if(a<b) swap(a,b);
    if(b==0) return a;
    return gcd(a%b,b);
}

int main(){
    int t; cin >> t;
    while(t){
        t--;
        ll p,q,k; cin >> p >> q >> k;
        ll g = gcd(p,q); p /= g; q /= g;
        ll le = 0,ri = 1000000000000000000;
        while(ri - le>1){
            ll mid = (le + ri)/2;
            ll n = min(mid/p,q - 1);
            if(floor_sum(n + 1,q,p,mid + q - n*p)>=k + 1) ri = mid;
            else le = mid;
        }
        cout << g*ri << "\n";
    }
}
0