提出 #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;
}

提出情報

提出日時
問題 E - Fizz Buzz Difference
ユーザ zhiyin123
言語 C++ 17 (gcc 12.2)
得点 800
コード長 1599 Byte
結果 AC
実行時間 167 ms
メモリ 5924 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 800 / 800
結果
AC × 2
AC × 39
セット名 テストケース
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