B. The Golden Age——math

Think:
1宏定义+sort排序+unique()去重函数+筛法
2题意理解:输入x,y,l,r寻找在区间[l, r]中不满足n = x^a + y^b的连续最长长度
3错误反思:
1>数组越界
2>存储的数据大小超出存储变量的存储范围
3>两端临界情况
4>l == r时的情况

Codeforces题目链接

B. The Golden Age
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Unlucky year in Berland is such a year that its number n can be represented as n = xa + yb, where a and b are non-negative integer numbers.
For example, if x = 2 and y = 3 then the years 4 and 17 are unlucky (4 = 20 + 31, 17 = 23 + 32 = 24 + 30) and year 18 isn’t unlucky as there is no such representation for it.
Such interval of years that there are no unlucky years in it is called The Golden Age.
You should write a program which will find maximum length of The Golden Age which starts no earlier than the year l and ends no later than the year r. If all years in the interval [l, r] are unlucky then the answer is 0.

Input
The first line contains four integer numbers x, y, l and r (2 ≤ x, y ≤ 1018, 1 ≤ l ≤ r ≤ 1018).

Output
Print the maximum length of The Golden Age within the interval [l, r].
If all years in the interval [l, r] are unlucky then print 0.
Examples

Input
2 3 1 10

Output
1

Input
3 5 10 22

Output
8

Input
2 3 3 5

Output
0

Note
In the first example the unlucky years are 2, 3, 4, 5, 7, 9 and 10. So maximum length of The Golden Age is achived in the intervals [1, 1], [6, 6] and [8, 8].
In the second example the longest Golden Age is the interval [15, 22].

以下为Accepted代码

#include <bits/stdc++.h>
#define LL long long int
#define ULL unsigned long long int

using namespace std;

LL tp, link[40000];

int main()
{
    LL x, y, l, r, i, j, ans, len;
    while(scanf("%lld %lld %lld %lld", &x, &y, &l, &r) != EOF)
    {
        tp = 0;
        for(i = 1; ; i *= x)
        {
            for(j = 1; ; j *= y)
            {
                if(i + j >= l && i + j <= r)
                {
                    link[tp++] = i + j;
                }
                if(j > r/y)
                    break;
            }
            if(i > r/x)
                break;
        }

        ans = 0;
        if(tp)
        {
            sort(link, link+tp);
            tp = unique(link, link+tp) - link;
            if(link[0] > l)
            {
                ans = max(ans, link[0]-l);
            }
            for(i = 1; i < tp; i++)
            {
                len = link[i] - link[i-1] - 1;
                ans = max(ans, len);
            }
            if(r > link[tp-1])
            {
                ans = max(ans, r-link[tp-1]);
            }
        }
        else {
            ans = max(ans, r-l+1);
        }
        printf("%lld\n", ans);
    }
    return 0;
}

以下为测试数据

→Judgement Protocol
Test: #1, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 3 1 10

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #2, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

3 5 10 22

Output

8

Answer

8

Checker Log

ok 1 number(s): "8"

Test: #3, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 3 3 5

Output

0

Answer

0

Checker Log

ok 1 number(s): "0"

Test: #4, time: 15 ms., memory: 308 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 2 1 10

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #5, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 2 1 1000000

Output

213568

Answer

213568

Checker Log

ok 1 number(s): "213568"

Test: #6, time: 0 ms., memory: 320 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 2 1 1000000000000000000

Output

144115188075855871

Answer

144115188075855871

Checker Log

ok 1 number(s): "144115188075855871"

Test: #7, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 3 1 1000000

Output

206415

Answer

206415

Checker Log

ok 1 number(s): "206415"

Test: #8, time: 15 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 3 1 1000000000000000000

Output

261485717957290893

Answer

261485717957290893

Checker Log

ok 1 number(s): "261485717957290893"

Test: #9, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

12345 54321 1 1000000

Output

933334

Answer

933334

Checker Log

ok 1 number(s): "933334"

Test: #10, time: 15 ms., memory: 308 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

54321 12345 1 1000000000000000000

Output

976614248345331214

Answer

976614248345331214

Checker Log

ok 1 number(s): "976614248345331214"

Test: #11, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 3 100000000 1000000000000

Output

188286357653

Answer

188286357653

Checker Log

ok 1 number(s): "188286357653"

Test: #12, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 14 732028847861235712 732028847861235712

Output

0

Answer

0

Checker Log

ok 1 number(s): "0"

Test: #13, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

14 2 732028847861235713 732028847861235713

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #14, time: 0 ms., memory: 320 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

3 2 6 7

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #15, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

16 5 821690667 821691481

Output

815

Answer

815

Checker Log

ok 1 number(s): "815"

Test: #16, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

1000000000000000000 2 1 1000000000000000000

Output

423539247696576511

Answer

423539247696576511

Checker Log

ok 1 number(s): "423539247696576511"

Test: #17, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 1000000000000000000 1000000000000000 1000000000000000000

Output

423539247696576511

Answer

423539247696576511

Checker Log

ok 1 number(s): "423539247696576511"

Test: #18, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 2 1000000000000000000 1000000000000000000

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #19, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

3 3 1 1

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #20, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 3 626492297402423196 726555387600422608

Output

100063090197999413

Answer

100063090197999413

Checker Log

ok 1 number(s): "100063090197999413"

Test: #21, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4 4 1 1

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #22, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

304279187938024110 126610724244348052 78460471576735729 451077737144268785

Output

177668463693676057

Answer

177668463693676057

Checker Log

ok 1 number(s): "177668463693676057"

Test: #23, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

510000000000 510000000000 1 1000000000000000000

Output

999998980000000000

Answer

999998980000000000

Checker Log

ok 1 number(s): "999998980000000000"

Test: #24, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 10000000000000000 1 1000000000000000000

Output

413539247696576512

Answer

413539247696576512

Checker Log

ok 1 number(s): "413539247696576512"

Test: #25, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

84826654960259 220116531311479700 375314289098080160 890689132792406667

Output

515374843694326508

Answer

515374843694326508

Checker Log

ok 1 number(s): "515374843694326508"

Test: #26, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

1001 9999 1 1000000000000000000

Output

988998989390034998

Answer

988998989390034998

Checker Log

ok 1 number(s): "988998989390034998"

Test: #27, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

106561009498593483 3066011339919949 752858505287719337 958026822891358781

Output

205168317603639445

Answer

205168317603639445

Checker Log

ok 1 number(s): "205168317603639445"

Test: #28, time: 15 ms., memory: 320 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

650233444262690661 556292951587380938 715689923804218376 898772439356652923

Output

183082515552434548

Answer

183082515552434548

Checker Log

ok 1 number(s): "183082515552434548"

Test: #29, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4294967297 4294967297 1 1000000000000000000

Output

999999991410065406

Answer

999999991410065406

Checker Log

ok 1 number(s): "999999991410065406"

Test: #30, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #31, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 2 1 1

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #32, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

73429332516742239 589598864615747534 555287238606698050 981268715519611449

Output

318240518387121676

Answer

318240518387121676

Checker Log

ok 1 number(s): "318240518387121676"

Test: #33, time: 0 ms., memory: 308 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

282060925969693883 446418005951342865 709861829378794811 826972744183396568

Output

98493812262359820

Answer

98493812262359820

Checker Log

ok 1 number(s): "98493812262359820"

Test: #34, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

97958277744315833 443452631396066615 33878596673318768 306383421710156519

Output

208425143965840685

Answer

208425143965840685

Checker Log

ok 1 number(s): "208425143965840685"

Test: #35, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

40975442958818854 7397733549114401 299774870238987084 658001214206968260

Output

358226343967981177

Answer

358226343967981177

Checker Log

ok 1 number(s): "358226343967981177"

Test: #36, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

699 700 1 1000

Output

697

Answer

697

Checker Log

ok 1 number(s): "697"

Test: #37, time: 0 ms., memory: 300 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

483076744475822225 425097332543006422 404961220953110704 826152774360856248

Output

343076029885034022

Answer

343076029885034022

Checker Log

ok 1 number(s): "343076029885034022"

Test: #38, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4294967297 4294967297 1 999999999999999999

Output

999999991410065405

Answer

999999991410065405

Checker Log

ok 1 number(s): "999999991410065405"

Test: #39, time: 0 ms., memory: 308 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

702012794 124925148 2623100012 1000000000000000000

Output

491571744457491660

Answer

491571744457491660

Checker Log

ok 1 number(s): "491571744457491660"

Test: #40, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

433333986179614514 1000000000000000000 433333986179614515 726628630292055493

Output

293294644112440978

Answer

293294644112440978

Checker Log

ok 1 number(s): "293294644112440978"

Test: #41, time: 15 ms., memory: 320 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

999999999999999999 364973116927770629 4 4

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #42, time: 0 ms., memory: 308 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4 2 40 812

Output

191

Answer

191

Checker Log

ok 1 number(s): "191"

Test: #43, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 3 1 1

Output

1

Answer

1

Checker Log

ok 1 number(s): "1"

Test: #44, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

1556368728 1110129598 120230736 1258235681

Output

989898863

Answer

989898863

Checker Log

ok 1 number(s): "989898863"

Test: #45, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

7 9 164249007852879073 459223650245359577

Output

229336748650748455

Answer

229336748650748455

Checker Log

ok 1 number(s): "229336748650748455"

Test: #46, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

324693328712373699 541961409169732375 513851377473048715 873677521504257312

Output

324693328712373697

Answer

324693328712373697

Checker Log

ok 1 number(s): "324693328712373697"

Test: #47, time: 15 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

370083000139673112 230227213530985315 476750241623737312 746365058930029530

Output

146054845259371103

Answer

146054845259371103

Checker Log

ok 1 number(s): "146054845259371103"

Test: #48, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4 3 584 899

Output

146

Answer

146

Checker Log

ok 1 number(s): "146"

Test: #49, time: 0 ms., memory: 320 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4 3 286 581

Output

161

Answer

161

Checker Log

ok 1 number(s): "161"

Test: #50, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

304045744870965151 464630021384225732 142628934177558000 844155070300317027

Output

304045744870965149

Answer

304045744870965149

Checker Log

ok 1 number(s): "304045744870965149"

Test: #51, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

195627622825327857 666148746663834172 1 1000000000000000000

Output

470521123838506314

Answer

470521123838506314

Checker Log

ok 1 number(s): "470521123838506314"

Test: #52, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

459168731438725410 459955118458373596 410157890472128901 669197645706452507

Output

209242527248078910

Answer

209242527248078910

Checker Log

ok 1 number(s): "209242527248078910"

Test: #53, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

999999999999999999 999999999999999999 1 1000000000000000000

Output

999999999999999997

Answer

999999999999999997

Checker Log

ok 1 number(s): "999999999999999997"

Test: #54, time: 0 ms., memory: 320 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

752299248283963354 680566564599126819 73681814274367577 960486443362068685

Output

606884750324759243

Answer

606884750324759243

Checker Log

ok 1 number(s): "606884750324759243"

Test: #55, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

20373217421623606 233158243228114207 97091516440255589 395722640217125926

Output

142191179567388113

Answer

142191179567388113

Checker Log

ok 1 number(s): "142191179567388113"

Test: #56, time: 0 ms., memory: 304 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

203004070900 20036005000 1 1000000000000000000

Output

999999776959924100

Answer

999999776959924100

Checker Log

ok 1 number(s): "999999776959924100"

Test: #57, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

565269817339236857 318270460838647700 914534538271870694 956123707310168659

Output

41589169038297966

Answer

41589169038297966

Checker Log

ok 1 number(s): "41589169038297966"

Test: #58, time: 15 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

2 5 330 669

Output

131

Answer

131

Checker Log

ok 1 number(s): "131"

Test: #59, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

9 9 91 547

Output

385

Answer

385

Checker Log

ok 1 number(s): "385"

Test: #60, time: 15 ms., memory: 308 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

9 4 866389615074294253 992899492208527253

Output

126509877134233001

Answer

126509877134233001

Checker Log

ok 1 number(s): "126509877134233001"

Test: #61, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

3037000500 3037000500 1 1000000000000000000

Output

999999993925999000

Answer

999999993925999000

Checker Log

ok 1 number(s): "999999993925999000"

Test: #62, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4294967297 4294967297 12 1000000000000000000

Output

999999991410065406

Answer

999999991410065406

Checker Log

ok 1 number(s): "999999991410065406"

Test: #63, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

5 3 78510497842978003 917156799600023483

Output

238418579101562499

Answer

238418579101562499

Checker Log

ok 1 number(s): "238418579101562499"

Test: #64, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

749206377024033575 287723056504284448 387669391392789697 931234393488075794

Output

361536985631243879

Answer

361536985631243879

Checker Log

ok 1 number(s): "361536985631243879"

Test: #65, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

999999999999999999 454135 1000000000000000000 1000000000000000000

Output

0

Answer

0

Checker Log

ok 1 number(s): "0"

Test: #66, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

759826429841877401 105086867783910112 667080043736858072 797465019478234768

Output

92746386105019330

Answer

92746386105019330

Checker Log

ok 1 number(s): "92746386105019330"

Test: #67, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

1000000000000000000 1000000000000000000 5 7

Output

3

Answer

3

Checker Log

ok 1 number(s): "3"

Test: #68, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

440968000218771383 43378854522801881 169393324037146024 995429539593716237

Output

511082684852142973

Answer

511082684852142973

Checker Log

ok 1 number(s): "511082684852142973"

Test: #69, time: 0 ms., memory: 312 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

15049917793417622 113425474361704411 87565655389309185 803955352361026671

Output

675479960205904638

Answer

675479960205904638

Checker Log

ok 1 number(s): "675479960205904638"

Test: #70, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4 6 264626841724745187 925995096479842591

Output

369878143059623936

Answer

369878143059623936

Checker Log

ok 1 number(s): "369878143059623936"

Test: #71, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

4294967297 4294967297 13 1000000000000000000

Output

999999991410065406

Answer

999999991410065406

Checker Log

ok 1 number(s): "999999991410065406"

Test: #72, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

315729630349763416 22614591055604717 66895291338255006 947444311481017774

Output

609100090075649641

Answer

609100090075649641

Checker Log

ok 1 number(s): "609100090075649641"

Test: #73, time: 15 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

3 10 173 739

Output

386

Answer

386

Checker Log

ok 1 number(s): "386"

Test: #74, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

161309010783040325 128259041753158864 5843045875031294 854024306926137845

Output

564456254389938656

Answer

564456254389938656

Checker Log

ok 1 number(s): "564456254389938656"

Test: #75, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

239838434825939759 805278168279318096 202337849919104640 672893754916863788

Output

433055320090924028

Answer

433055320090924028

Checker Log

ok 1 number(s): "433055320090924028"

Test: #76, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

9 9 435779695685310822 697902619874412541

Output

262122924189101720

Answer

262122924189101720

Checker Log

ok 1 number(s): "262122924189101720"

Test: #77, time: 0 ms., memory: 316 KB, exit code: 0, checker exit code: 0, verdict: OK
Input

967302429573451368 723751675006196376 143219686319239751 266477897142546404

Output

123258210823306654

Answer

123258210823306654

Checker Log

ok 1 number(s): "123258210823306654"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值