QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#545567#4366. Forever YoungPhantomThreshold#AC ✓53ms3824kbC++201.9kb2024-09-03 15:03:012024-09-03 15:03:01

Judging History

你现在查看的是最新测评结果

  • [2024-09-03 15:03:01]
  • 评测
  • 测评结果:AC
  • 用时:53ms
  • 内存:3824kb
  • [2024-09-03 15:03:01]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
__int128 sq(__int128 x){
    if (x==0) return 0;
    __int128 sz=sqrtl(x);
    for (;(sz+1)*(sz+1)<=x;) sz++;
    for (;sz*sz>x;) sz--;
    return sz;
}
pair<__int128,__int128> solve(ll a,ll b,ll c){
    if (a==0){
        if (b==0) return make_pair(-1LL,-1LL);
        if (c%b!=0) return make_pair(-1LL,-1LL);
        return make_pair(-1LL,-c/b);
    }
    __int128 delta=(__int128)b*b-(__int128)4*a*c;
    if (delta<0) return make_pair(-1LL,-1LL);
    __int128 sqdt=sq(delta);
    if (sqdt*sqdt!=delta) return make_pair(-1LL,-1LL);
    __int128 x1=-b-sqdt;
    __int128 x2=-b+sqdt;
    if (x1%(2*a)!=0) x1=-1;
    else x1=x1/(2*a);
    if (x2%(2*a)!=0) x2=-1;
    else x2=x2/(2*a);
    return make_pair(x1,x2);
}

const ll lim=1000000;
ll y,l;

int main(){
    cin >> y >> l;
    ll ans=10;
    for (ll b=11;b<=lim;b++){
        vector<ll> digit;
        for (ll now=y;now;now/=b) digit.push_back(now%b);
        bool flag=1;
        ll res=0;
        reverse(digit.begin(),digit.end());
        for (auto x:digit){
            if (x>9){
                flag=0;
                break;
            }
            res=res*10+x;
        }
        if (!flag) continue;
    //    cerr << b << " " << res << endl;
        if (res>=l) ans=max(ans,b);
    }
//    cerr << "ans : " << ans << endl;
    for (ll a=0;a<=9;a++){
        for (ll b=0;b<=9;b++){
            for (ll c=0;c<=9;c++){
                if (a*100+b*10+c<l) continue;
                auto [x1,x2]=solve(a,b,c-y);
                // if (a==9 && b==8 && c==5){
                //     cerr << (long long)x1 << " " << (long long)x2 << endl;
                // }
                if (x1>0 && a*x1*x1+b*x1+c==y) ans=max(ans,(long long)x1);
                if (x2>0 && a*x2*x2+b*x2+c==y) ans=max(ans,(long long)x2); 
            }
        }
    }
    cout << ans << "\n";
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 10ms
memory: 3600kb

input:

32 20

output:

16

result:

ok single line: '16'

Test #2:

score: 0
Accepted
time: 14ms
memory: 3596kb

input:

2016 100

output:

42

result:

ok single line: '42'

Test #3:

score: 0
Accepted
time: 53ms
memory: 3476kb

input:

1000000000000000000 10

output:

1000000000000000000

result:

ok single line: '1000000000000000000'

Test #4:

score: 0
Accepted
time: 49ms
memory: 3604kb

input:

149239876439186 470

output:

11

result:

ok single line: '11'

Test #5:

score: 0
Accepted
time: 32ms
memory: 3604kb

input:

4851495 95

output:

539054

result:

ok single line: '539054'

Test #6:

score: 0
Accepted
time: 34ms
memory: 3620kb

input:

19839853985 19839853985

output:

10

result:

ok single line: '10'

Test #7:

score: 0
Accepted
time: 52ms
memory: 3616kb

input:

1000000000000000000 17

output:

999999999999999993

result:

ok single line: '999999999999999993'

Test #8:

score: 0
Accepted
time: 53ms
memory: 3604kb

input:

1000000000000000000 23

output:

499999999999999998

result:

ok single line: '499999999999999998'

Test #9:

score: 0
Accepted
time: 52ms
memory: 3572kb

input:

1000000000000000000 58

output:

166666666666666666

result:

ok single line: '166666666666666666'

Test #10:

score: 0
Accepted
time: 52ms
memory: 3772kb

input:

1000000000000000000 145

output:

999999997

result:

ok single line: '999999997'

Test #11:

score: 0
Accepted
time: 53ms
memory: 3824kb

input:

1000000000000000000 230

output:

500000000

result:

ok single line: '500000000'

Test #12:

score: 0
Accepted
time: 52ms
memory: 3604kb

input:

1000000000000000000 1050

output:

999999

result:

ok single line: '999999'

Test #13:

score: 0
Accepted
time: 52ms
memory: 3536kb

input:

1000000000000000000 9593

output:

1000

result:

ok single line: '1000'

Test #14:

score: 0
Accepted
time: 52ms
memory: 3572kb

input:

1000000000000000000 1000000000000000000

output:

10

result:

ok single line: '10'

Test #15:

score: 0
Accepted
time: 49ms
memory: 3576kb

input:

981759819857981583 10

output:

981759819857981583

result:

ok single line: '981759819857981583'

Test #16:

score: 0
Accepted
time: 48ms
memory: 3764kb

input:

981759819857981583 17

output:

981759819857981576

result:

ok single line: '981759819857981576'

Test #17:

score: 0
Accepted
time: 52ms
memory: 3572kb

input:

981759819857981583 23

output:

490879909928990790

result:

ok single line: '490879909928990790'

Test #18:

score: 0
Accepted
time: 53ms
memory: 3564kb

input:

981759819857981583 58

output:

196351963971596315

result:

ok single line: '196351963971596315'

Test #19:

score: 0
Accepted
time: 52ms
memory: 3600kb

input:

981759819857981583 140

output:

10

result:

ok single line: '10'

Test #20:

score: 0
Accepted
time: 52ms
memory: 3616kb

input:

981759819857981583 230

output:

10

result:

ok single line: '10'

Test #21:

score: 0
Accepted
time: 48ms
memory: 3608kb

input:

981759819857981583 1050

output:

10

result:

ok single line: '10'

Test #22:

score: 0
Accepted
time: 49ms
memory: 3620kb

input:

981759819857981583 9593

output:

10

result:

ok single line: '10'

Test #23:

score: 0
Accepted
time: 52ms
memory: 3560kb

input:

981759819857981583 74292

output:

10

result:

ok single line: '10'

Test #24:

score: 0
Accepted
time: 51ms
memory: 3616kb

input:

140986742987698176 10

output:

140986742987698176

result:

ok single line: '140986742987698176'

Test #25:

score: 0
Accepted
time: 44ms
memory: 3692kb

input:

158918593147583853 849

output:

10

result:

ok single line: '10'

Test #26:

score: 0
Accepted
time: 50ms
memory: 3772kb

input:

206808958398095782 82

output:

25851119799761972

result:

ok single line: '25851119799761972'

Test #27:

score: 0
Accepted
time: 48ms
memory: 3692kb

input:

675097804382958295 123

output:

12

result:

ok single line: '12'

Test #28:

score: 0
Accepted
time: 51ms
memory: 3600kb

input:

782891909194182377 95

output:

86987989910464708

result:

ok single line: '86987989910464708'

Test #29:

score: 0
Accepted
time: 52ms
memory: 3568kb

input:

782891909194182377 96

output:

25012

result:

ok single line: '25012'

Test #30:

score: 0
Accepted
time: 52ms
memory: 3572kb

input:

782891909194182377 30000

output:

11

result:

ok single line: '11'

Test #31:

score: 0
Accepted
time: 48ms
memory: 3600kb

input:

988246947114416919 93

output:

109805216346046324

result:

ok single line: '109805216346046324'

Test #32:

score: 0
Accepted
time: 52ms
memory: 3564kb

input:

988246947114416919 95

output:

26512

result:

ok single line: '26512'

Test #33:

score: 0
Accepted
time: 52ms
memory: 3616kb

input:

988246947114416919 29000

output:

10

result:

ok single line: '10'

Test #34:

score: 0
Accepted
time: 49ms
memory: 3564kb

input:

9000630015000129 100

output:

100002

result:

ok single line: '100002'

Test #35:

score: 0
Accepted
time: 52ms
memory: 3572kb

input:

999996640752785561 100

output:

31622

result:

ok single line: '31622'

Test #36:

score: 0
Accepted
time: 14ms
memory: 3604kb

input:

10 10

output:

10

result:

ok single line: '10'

Test #37:

score: 0
Accepted
time: 14ms
memory: 3540kb

input:

11 10

output:

11

result:

ok single line: '11'

Test #38:

score: 0
Accepted
time: 14ms
memory: 3576kb

input:

19 13

output:

16

result:

ok single line: '16'

Test #39:

score: 0
Accepted
time: 52ms
memory: 3752kb

input:

949986743716085769 100

output:

983040

result:

ok single line: '983040'

Test #40:

score: 0
Accepted
time: 52ms
memory: 3616kb

input:

801548868891525129 100

output:

737280

result:

ok single line: '737280'

Test #41:

score: 0
Accepted
time: 52ms
memory: 3768kb

input:

926093549141544969 100

output:

675841

result:

ok single line: '675841'

Test #42:

score: 0
Accepted
time: 52ms
memory: 3604kb

input:

949980220730081289 100

output:

491520

result:

ok single line: '491520'

Test #43:

score: 0
Accepted
time: 51ms
memory: 3516kb

input:

618476800577126409 100

output:

409600

result:

ok single line: '409600'

Test #44:

score: 0
Accepted
time: 52ms
memory: 3544kb

input:

890865346255534089 100

output:

30720

result:

ok single line: '30720'

Test #45:

score: 0
Accepted
time: 53ms
memory: 3768kb

input:

859144460042470409 99

output:

25600

result:

ok single line: '25600'

Test #46:

score: 0
Accepted
time: 52ms
memory: 3616kb

input:

845488492963637769 100

output:

23040

result:

ok single line: '23040'

Test #47:

score: 0
Accepted
time: 52ms
memory: 3564kb

input:

896892642854698249 92

output:

21760

result:

ok single line: '21760'

Test #48:

score: 0
Accepted
time: 53ms
memory: 3600kb

input:

994907428831831689 100

output:

21120

result:

ok single line: '21120'

Test #49:

score: 0
Accepted
time: 52ms
memory: 3776kb

input:

836899046557320969 100

output:

3840

result:

ok single line: '3840'

Test #50:

score: 0
Accepted
time: 52ms
memory: 3472kb

input:

949986743716085769 99

output:

105554082635120640

result:

ok single line: '105554082635120640'

Test #51:

score: 0
Accepted
time: 52ms
memory: 3600kb

input:

801548868891525129 99

output:

89060985432391680

result:

ok single line: '89060985432391680'

Test #52:

score: 0
Accepted
time: 53ms
memory: 3616kb

input:

926093549141544969 99

output:

102899283237949440

result:

ok single line: '102899283237949440'

Test #53:

score: 0
Accepted
time: 52ms
memory: 3584kb

input:

949980220730081289 99

output:

105553357858897920

result:

ok single line: '105553357858897920'

Test #54:

score: 0
Accepted
time: 48ms
memory: 3600kb

input:

618476800577126409 99

output:

68719644508569600

result:

ok single line: '68719644508569600'

Test #55:

score: 0
Accepted
time: 53ms
memory: 3532kb

input:

890865346255534089 99

output:

98985038472837120

result:

ok single line: '98985038472837120'

Test #56:

score: 0
Accepted
time: 52ms
memory: 3516kb

input:

859144460042470409 98

output:

95460495560274489

result:

ok single line: '95460495560274489'

Test #57:

score: 0
Accepted
time: 52ms
memory: 3612kb

input:

845488492963637769 99

output:

93943165884848640

result:

ok single line: '93943165884848640'

Test #58:

score: 0
Accepted
time: 52ms
memory: 3824kb

input:

896892642854698249 91

output:

99654738094966472

result:

ok single line: '99654738094966472'

Test #59:

score: 0
Accepted
time: 49ms
memory: 3572kb

input:

994907428831831689 99

output:

110545269870203520

result:

ok single line: '110545269870203520'

Test #60:

score: 0
Accepted
time: 52ms
memory: 3516kb

input:

836899046557320969 99

output:

92988782950813440

result:

ok single line: '92988782950813440'