結果
問題 | No.2066 Simple Math ! |
ユーザー |
|
提出日時 | 2022-08-02 19:58:46 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 237 ms / 2,000 ms |
コード長 | 569 bytes |
コンパイル時間 | 1,022 ms |
コンパイル使用メモリ | 77,568 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-15 19:08:11 |
合計ジャッジ時間 | 7,399 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 31 |
ソースコード
#include<iostream>#include<utility>#include<atcoder/math>using namespace std;int gcd(int a,int b){while(b){int t=a%b;a=b;b=t;}return a;}long long count(long long X,int P,int Q)//Sum[floor((X-Pi+Q)/Q),{i,0,Q-1}]{long long R=min((long long)Q,X/P+1);return atcoder::floor_sum(R,Q,-P,X+Q);}int main(){int T;cin>>T;for(;T--;){int P,Q,K;cin>>P>>Q>>K;int g=gcd(P,Q);P/=g;Q/=g;long long l=0,r=1e18;while(r-l>1){long long mid=(l+r)/2;if(count(mid,P,Q)<=K)l=mid;else r=mid;}cout<<r*g<<endl;}}