QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#637660#8777. Passport StampsKyy008WA 17ms6184kbC++202.0kb2024-10-13 13:40:542024-10-13 13:40:56

Judging History

This is the latest submission verdict.

  • [2024-10-13 13:40:56]
  • Judged
  • Verdict: WA
  • Time: 17ms
  • Memory: 6184kb
  • [2024-10-13 13:40:54]
  • Submitted

answer

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

struct Interval {
    long long l;
    long long r;
};

struct Compare {
    bool operator()(const Interval& a, const Interval& b) const {
        long long size_a = a.r - a.l + 1;
        long long size_b = b.r - b.l + 1;
        if (size_a != size_b)
            return size_a < size_b; // max heap
        else
            return a.l > b.l; // tie-breaker
    }
};

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    long long n, p;
    cin >> n >> p;
    // Read all c's
    vector<long long> c(n);
    for(auto &x: c) cin >> x;
    // Initialize priority queue
    priority_queue<Interval, vector<Interval>, Compare> pq;
    if(p >=1){
        pq.push(Interval{1, p});
    }
    long long count = 0;
    for(long long i=0;i<n;i++){
        long long current_c = c[i];
        // Check if any interval has size >= current_c
        while(!pq.empty()){
            Interval top = pq.top();
            long long size = top.r - top.l + 1;
            if(size >= current_c){
                // Can perform this trip
                pq.pop();
                count++;
                // Find the stamp position
                long long s = top.l + (size - current_c)/2;
                long long e = s + current_c -1;
                // Add left interval
                if(s > top.l){
                    pq.push(Interval{top.l, s-1});
                }
                // Add right interval
                if(e < top.r){
                    pq.push(Interval{e+1, top.r});
                }
                break;
            }
            else{
                // This interval is too small, remove it
                pq.pop();
            }
        }
        // After trying to perform the trip
        // Check if we performed it
        if(count < i+1){
            // Failed on this trip
            cout << count;
            return 0;
        }
    }
    // If all trips performed
    cout << count;
}

详细

Test #1:

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

input:

5 15
1
2
3
4
5

output:

3

result:

ok single line: '3'

Test #2:

score: 0
Accepted
time: 11ms
memory: 6132kb

input:

100000 559309580160692839
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

84437

result:

ok single line: '84437'

Test #3:

score: 0
Accepted
time: 8ms
memory: 4924kb

input:

100000 890934113082207108
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

53636

result:

ok single line: '53636'

Test #4:

score: 0
Accepted
time: 10ms
memory: 4972kb

input:

100000 132839930703581978
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

59360

result:

ok single line: '59360'

Test #5:

score: 0
Accepted
time: 15ms
memory: 6184kb

input:

100000 761263352659137865
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

67748

result:

ok single line: '67748'

Test #6:

score: 0
Accepted
time: 7ms
memory: 4756kb

input:

100000 654001515423941861
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

25745

result:

ok single line: '25745'

Test #7:

score: 0
Accepted
time: 10ms
memory: 4920kb

input:

100000 755568812034403272
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

40873

result:

ok single line: '40873'

Test #8:

score: 0
Accepted
time: 11ms
memory: 4948kb

input:

100000 783129347604694200
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

44527

result:

ok single line: '44527'

Test #9:

score: 0
Accepted
time: 13ms
memory: 5148kb

input:

100000 905120603799436149
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

58851

result:

ok single line: '58851'

Test #10:

score: 0
Accepted
time: 10ms
memory: 4932kb

input:

100000 240004036785370527
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

42660

result:

ok single line: '42660'

Test #11:

score: 0
Accepted
time: 8ms
memory: 4752kb

input:

100000 548919634536408821
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

output:

30657

result:

ok single line: '30657'

Test #12:

score: 0
Accepted
time: 17ms
memory: 5960kb

input:

100000 75636237219086009
1
37818118609543001
12606039536514334
6303019768257167
3781811860954300
2521207907302866
1800862790930619
1350647093197964
1050503294709528
840402635767622
687602156537145
573001797114288
484847674481320
415583720983989
360172558186124
315150988412858
278074401540757
2471772...

output:

100000

result:

ok single line: '100000'

Test #13:

score: 0
Accepted
time: 17ms
memory: 5984kb

input:

100000 236447379349717830
1
118223689674858912
39407896558286304
19703948279143152
11822368967485891
7881579311657261
5629699508326615
4222274631244961
3283991379857192
2627193103885753
2149521630451980
1791268025376650
1515688329164858
1299161424998449
1125939901665323
985197413957157
8692918358445...

output:

100000

result:

ok single line: '100000'

Test #14:

score: 0
Accepted
time: 17ms
memory: 6052kb

input:

100000 238284828602599618
1
119142414301299807
39714138100433269
19857069050216634
11914241430129980
7942827620086654
5673448300061895
4255086225046421
3309511508369439
2647609206695551
2166225714569087
1805188095474239
1527466850016664
1309257300014283
1134689660012379
992853452510832
8760471639801...

output:

100000

result:

ok single line: '100000'

Test #15:

score: 0
Accepted
time: 17ms
memory: 5968kb

input:

100000 209481399482344513
1
104740699741172255
34913566580390751
17456783290195376
10474069974117225
6982713316078150
4987652368627250
3740739276470437
2909463881699229
2327571105359383
1904376358930404
1586980299108670
1342829483861183
1150996700452442
997530473725450
872839164509769
77015220397920...

output:

100000

result:

ok single line: '100000'

Test #16:

score: 0
Accepted
time: 17ms
memory: 6180kb

input:

100000 160284526594608875
1
80142263297304436
26714087765768145
13357043882884073
8014226329730443
5342817553153629
3816298252252592
2862223689189444
2226173980480679
1780939184384543
1457132059950989
1214276716625825
1027464914068005
880684212058290
763259650450518
667852194144203
589281347774297
5...

output:

100000

result:

ok single line: '100000'

Test #17:

score: 0
Accepted
time: 17ms
memory: 6136kb

input:

100000 852095496567419553
1
426047748283709776
142015916094569925
71007958047284962
42604774828370977
28403183218913985
20287988013509989
15215991010132492
11834659674547494
9467727739637995
7746322696067450
6455268913389542
5462150619021920
4681843387733074
4057597602701998
3550397902364248
3132704...

output:

100000

result:

ok single line: '100000'

Test #18:

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

input:

100000 787884515487196686
1
393942257743598343
131314085914532781
65657042957266390
39394225774359834
26262817182906556
18759155130647540
14069366347985655
10942840492877731
8754272394302185
7162586504429061
5968822087024217
5050541765943568
4329035799380201
3751831026129508
3282852147863319
2896634...

output:

100000

result:

ok single line: '100000'

Test #19:

score: 0
Accepted
time: 7ms
memory: 3988kb

input:

100000 705443926439369243
1
352721963219684622
117573987739894874
58786993869947437
35272196321968462
23514797547978974
16796283962842125
12597212972131593
9797832311657906
7838265849326325
6413126603994266
5344272169995221
4522076451534418
3876065529886644
3359256792568425
2939349693497372
25935438...

output:

1

result:

ok single line: '1'

Test #20:

score: 0
Accepted
time: 6ms
memory: 3988kb

input:

100000 400695253982082795
1
200347626991041398
66782542330347133
33391271165173566
20034762699104140
13356508466069426
9540363190049590
7155272392537193
5565211860862261
4452169488689809
3642684127109843
3035570105924869
2568559320397966
2201622274626828
1908072638009918
1669563558258678
14731443161...

output:

1

result:

ok single line: '1'

Test #21:

score: 0
Accepted
time: 7ms
memory: 3828kb

input:

100000 954649278647157019
1
477324639323578511
159108213107859503
79554106553929752
47732463932357851
31821642621571900
22729744729694215
17047308547270661
13259017758988292
10607214207190633
8678629805883245
7232191504902704
6119546657994596
5245325706852511
4545948945938843
3977705327696487
350973...

output:

1

result:

ok single line: '1'

Test #22:

score: -100
Wrong Answer
time: 14ms
memory: 6056kb

input:

100000 827879037502813038
1
413939518751406518
137979839583802173
68989919791901086
41393951875140652
27595967916760434
19711405654828882
14783554241121661
11498319965316847
9198655972253478
7526173068207391
6271810890172826
5306916907069314
4548785920345126
3942281130965776
3449495989595054
3043672...

output:

100000

result:

wrong answer 1st lines differ - expected: '214', found: '100000'