提出 #62189079
ソースコード 拡げる
#include<bits/stdc++.h>
using std::cerr; using std::setw; using std::endl;
using std::cin; using std::cout;
template<typename Tp>
bool tomax(Tp &x,const Tp &y){if(x<y){x=y; return 1;} return 0;}
template<typename Tp>
bool tomin(Tp &x,const Tp &y){if(y<x){x=y; return 1;} return 0;}
using ll=long long; using ui=unsigned; using lf=double;
using ull=unsigned long long;
constexpr ll MAXV=2e12;
ll udiv(ll x,ll y){return (x+y-1)/y;}
ll getk(ll a,ll b,ll n,ll g){
ll l=1,r=MAXV+1;
while(l<r){
ll mid=(l+r+1)>>1;
if(mid-1-udiv(a*mid-g,b)>n) r=mid-1;
else l=mid;
}
return r;
}
ll calc(ll a,ll m,ll L,ll R){
if(L==0) return 0;
if(a==0||L>R) return -1;
ll t=udiv(L,a);
if(a*t<=R) return t;
ll k=calc(m%a,a,a-R%a,a-L%a);
if(k==-1) return -1;
return udiv(L+k*m,a);
}
void solve(){
ll n,a,b; cin>>n>>a>>b;
ll g=std::__gcd(a,b);
ll k=getk(a,b,n,g);
// cerr<<"k: "<<k<<endl;
ll cntb=udiv(a*k-g,b),r=a*k-b*(cntb-1)-1;
ll t;
if(b-r-a>0){
// ll rec=calc(a,b,b-r-a,b-1-a);
// cerr<<"a,b: "<<a<<' '<<b
// <<" l,r: "<<(b-r-a)<<' '<<(b-1-a)
// <<" rec: "<<rec
// <<" val: "<<(a*rec%b)
// <<endl;
t=calc(a,b,b-r-a,b-1-a)+1;
}else{
t=1;
}
ll y=t*a,L=y+1,R=y+a*k-1;
cout<<L<<' '<<R<<'\n';
return ;
}
int main(){
std::ios::sync_with_stdio(0); std::cin.tie(0); std::cout.tie(0);
int T; cin>>T;
for(int t=1;t<=T;t++){
solve();
}
return 0;
}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
800 / 800 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
01_sample_01.txt, 01_sample_02.txt |
| All |
01_sample_01.txt, 01_sample_02.txt, 02_small_01.txt, 02_small_02.txt, 02_small_03.txt, 02_small_04.txt, 02_small_05.txt, 03_rand_01.txt, 03_rand_02.txt, 03_rand_03.txt, 03_rand_04.txt, 03_rand_05.txt, 03_rand_06.txt, 03_rand_07.txt, 03_rand_08.txt, 03_rand_09.txt, 03_rand_10.txt, 03_rand_11.txt, 03_rand_12.txt, 03_rand_13.txt, 03_rand_14.txt, 03_rand_15.txt, 03_rand_16.txt, 03_rand_17.txt, 03_rand_18.txt, 03_rand_19.txt, 03_rand_20.txt, 04_a_b_near_01.txt, 04_a_b_near_02.txt, 04_a_b_near_03.txt, 04_a_b_near_04.txt, 04_a_b_near_05.txt, 05_fibonacci_01.txt, 05_fibonacci_02.txt, 06_large_L_01.txt, 06_large_L_02.txt, 06_large_L_03.txt, 06_large_L_04.txt, 06_large_L_05.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 01_sample_01.txt |
AC |
1 ms |
3512 KiB |
| 01_sample_02.txt |
AC |
1 ms |
3440 KiB |
| 02_small_01.txt |
AC |
108 ms |
3416 KiB |
| 02_small_02.txt |
AC |
107 ms |
3468 KiB |
| 02_small_03.txt |
AC |
108 ms |
3588 KiB |
| 02_small_04.txt |
AC |
107 ms |
3600 KiB |
| 02_small_05.txt |
AC |
107 ms |
3452 KiB |
| 03_rand_01.txt |
AC |
129 ms |
4504 KiB |
| 03_rand_02.txt |
AC |
130 ms |
4624 KiB |
| 03_rand_03.txt |
AC |
130 ms |
4604 KiB |
| 03_rand_04.txt |
AC |
130 ms |
4604 KiB |
| 03_rand_05.txt |
AC |
130 ms |
4604 KiB |
| 03_rand_06.txt |
AC |
130 ms |
4540 KiB |
| 03_rand_07.txt |
AC |
129 ms |
4596 KiB |
| 03_rand_08.txt |
AC |
130 ms |
4496 KiB |
| 03_rand_09.txt |
AC |
130 ms |
4600 KiB |
| 03_rand_10.txt |
AC |
130 ms |
4596 KiB |
| 03_rand_11.txt |
AC |
130 ms |
4580 KiB |
| 03_rand_12.txt |
AC |
130 ms |
4560 KiB |
| 03_rand_13.txt |
AC |
130 ms |
4596 KiB |
| 03_rand_14.txt |
AC |
130 ms |
4548 KiB |
| 03_rand_15.txt |
AC |
130 ms |
4540 KiB |
| 03_rand_16.txt |
AC |
131 ms |
4576 KiB |
| 03_rand_17.txt |
AC |
131 ms |
4528 KiB |
| 03_rand_18.txt |
AC |
130 ms |
4600 KiB |
| 03_rand_19.txt |
AC |
132 ms |
4620 KiB |
| 03_rand_20.txt |
AC |
130 ms |
4612 KiB |
| 04_a_b_near_01.txt |
AC |
128 ms |
5804 KiB |
| 04_a_b_near_02.txt |
AC |
121 ms |
5880 KiB |
| 04_a_b_near_03.txt |
AC |
120 ms |
5892 KiB |
| 04_a_b_near_04.txt |
AC |
120 ms |
5924 KiB |
| 04_a_b_near_05.txt |
AC |
121 ms |
5848 KiB |
| 05_fibonacci_01.txt |
AC |
147 ms |
4540 KiB |
| 05_fibonacci_02.txt |
AC |
146 ms |
4512 KiB |
| 06_large_L_01.txt |
AC |
159 ms |
5220 KiB |
| 06_large_L_02.txt |
AC |
160 ms |
5216 KiB |
| 06_large_L_03.txt |
AC |
159 ms |
5244 KiB |
| 06_large_L_04.txt |
AC |
160 ms |
5220 KiB |
| 06_large_L_05.txt |
AC |
167 ms |
5272 KiB |