QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#664033#7154. InflationWarinchai_s#19 94ms16080kbC++141.8kb2024-10-21 19:00:412024-10-21 19:00:44

Judging History

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

  • [2024-10-21 19:00:44]
  • 评测
  • 测评结果:19
  • 用时:94ms
  • 内存:16080kb
  • [2024-10-21 19:00:41]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,q;
struct fenwick{
    long long sum[300005];
    void upd(int id,long long val){
        for(int i=id;i<=300005;i+=i&-i)sum[i]+=val;
    }
    long long fans(int id){
        long long ans=0;
        for(int i=id;i>0;i-=i&-i){
            ans+=sum[i];
        }
        return ans;
    }
}fw;
long long tlz=0;
long long ar[300005];
int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    vector<int>v;
    vector<pair<int,pair<int,int>>>qr;
    for(int i=1;i<=n;i++){
        cin>>ar[i];
        v.push_back(ar[i]);
    }
    cin>>q;
    for(int i=0;i<q;i++){
        string s;cin>>s;
        int t,a,b;t=a=b=0;
        if(s=="INFLATION"){
            t=0;
            cin>>a;
            tlz+=a;
        }else{
            t=1;
            cin>>a>>b;
            v.push_back(b-tlz);
        }
        qr.push_back({t,{a,b}});
    }
    sort(v.begin(),v.end());
    v.erase(unique(v.begin(),v.end()),v.end());
    tlz=0;
    for(int i=1;i<=n;i++){
        int id=lower_bound(v.begin(),v.end(),ar[i])-v.begin()+1;
        fw.upd(id,ar[i]);
    }
    for(auto x:qr){
        if(x.first==0){
            tlz+=x.second.first;
            cout<<fw.fans(v.size()+1)+tlz*n<<"\n";
        }else{
            long long vx=x.second.first-tlz;
            long long vy=x.second.second-tlz;
            int idx=lower_bound(v.begin(),v.end(),vx)-v.begin()+1;
            int idy=lower_bound(v.begin(),v.end(),vy)-v.begin()+1;
            if(vx==v[idx-1]){
                long long prev=fw.fans(idx)-fw.fans(idx-1);
                fw.upd(idx,-prev);
                fw.upd(idy,vy*(prev/vx));
            }
            cout<<fw.fans(v.size()+1)+tlz*n<<"\n";
        }
    }
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Runtime Error

Test #1:

score: 14
Accepted
time: 1ms
memory: 5940kb

input:

1
23
100
INFLATION 65
INFLATION 37
INFLATION 28
INFLATION 41
INFLATION 53
INFLATION 46
SET 81 22
INFLATION 91
SET 45 85
SET 85 14
INFLATION 58
INFLATION 89
SET 98 60
INFLATION 75
INFLATION 97
SET 91 53
INFLATION 31
INFLATION 51
SET 81 78
SET 16 78
INFLATION 59
SET 10 74
INFLATION 55
SET 7 50
INFLATI...

output:

88
125
153
194
247
293
293
384
384
384
442
531
531
606
703
703
734
785
785
785
844
844
899
899
948
974
1005
1005
1005
1005
1089
1105
1105
1105
1162
1162
1162
1219
1219
1303
1308
1337
1353
1374
1374
1407
1407
1456
1474
1492
1571
1658
1730
1797
1896
1939
1939
2033
2057
2077
2077
2106
2106
2185
2228
23...

result:

ok 100 numbers

Test #2:

score: 14
Accepted
time: 12ms
memory: 8292kb

input:

1
93778
100000
INFLATION 32663
INFLATION 554818
INFLATION 110963
INFLATION 345746
INFLATION 409131
INFLATION 445328
INFLATION 7625
INFLATION 837471
INFLATION 357915
INFLATION 82015
INFLATION 99255
INFLATION 665483
INFLATION 736596
INFLATION 673403
INFLATION 147405
INFLATION 853547
INFLATION 314698
I...

output:

126441
681259
792222
1137968
1547099
1992427
2000052
2837523
3195438
3277453
3376708
4042191
4778787
5452190
5599595
6453142
6767840
6963574
7364083
7594986
8180278
8862838
9464475
9905652
10051918
10642952
11248354
11808260
11920658
12441175
13407678
14069924
14461680
15028874
15322941
16078076
167...

result:

ok 100000 numbers

Test #3:

score: 14
Accepted
time: 11ms
memory: 9816kb

input:

1
119480
100000
INFLATION 87697
INFLATION 153264
INFLATION 499451
INFLATION 506614
INFLATION 190649
INFLATION 837450
INFLATION 218924
INFLATION 757474
INFLATION 228496
INFLATION 429224
INFLATION 933596
INFLATION 756140
INFLATION 680926
INFLATION 927777
INFLATION 223205
INFLATION 85390
INFLATION 4625...

output:

207177
360441
859892
1366506
1557155
2394605
2613529
3371003
3599499
4028723
4962319
5718459
6399385
7327162
7550367
7635757
8098284
8945758
9620063
9720939
10492548
10837252
10954600
11434972
12346508
13251248
13906151
14829003
15036516
15314113
15845720
16807010
17626024
17778075
18117950
18890458...

result:

ok 100000 numbers

Test #4:

score: 0
Runtime Error

input:

1
57
100000
INFLATION 3
SET 60 81
SET 60 77
SET 60 3
INFLATION 22
SET 25 10
SET 99 59
SET 59 69
SET 25 54
SET 25 14
SET 69 53
SET 53 47
SET 59 45
SET 47 10
SET 47 53
SET 10 40
SET 40 87
SET 53 79
SET 69 78
SET 53 72
SET 25 79
SET 10 53
SET 53 49
SET 79 70
SET 40 54
SET 45 27
SET 103 9
SET 53 23
SET ...

output:


result:


Subtask #2:

score: 0
Runtime Error

Test #6:

score: 28
Accepted
time: 1ms
memory: 5940kb

input:

1
23
100
INFLATION 65
INFLATION 37
INFLATION 28
INFLATION 41
INFLATION 53
INFLATION 46
SET 81 22
INFLATION 91
SET 45 85
SET 85 14
INFLATION 58
INFLATION 89
SET 98 60
INFLATION 75
INFLATION 97
SET 91 53
INFLATION 31
INFLATION 51
SET 81 78
SET 16 78
INFLATION 59
SET 10 74
INFLATION 55
SET 7 50
INFLATI...

output:

88
125
153
194
247
293
293
384
384
384
442
531
531
606
703
703
734
785
785
785
844
844
899
899
948
974
1005
1005
1005
1005
1089
1105
1105
1105
1162
1162
1162
1219
1219
1303
1308
1337
1353
1374
1374
1407
1407
1456
1474
1492
1571
1658
1730
1797
1896
1939
1939
2033
2057
2077
2077
2106
2106
2185
2228
23...

result:

ok 100 numbers

Test #7:

score: 28
Accepted
time: 0ms
memory: 5668kb

input:

3
8 7 7
5
SET 8 55
INFLATION 2
INFLATION 1
INFLATION 3
SET 14 7

output:

69
75
78
87
87

result:

ok 5 number(s): "69 75 78 87 87"

Test #8:

score: 28
Accepted
time: 1ms
memory: 5640kb

input:

100
21 89 4 51 46 61 20 85 55 3 85 24 38 36 36 15 68 18 30 96 78 51 24 45 100 91 30 23 6 99 9 29 80 83 47 75 12 92 61 8 12 11 11 35 93 95 97 21 40 31 31 28 66 88 1 5 30 87 20 29 20 12 28 60 42 35 16 84 44 19 67 91 20 86 1 35 19 21 61 45 69 15 19 73 14 97 89 16 13 43 56 98 4 59 67 17 24 85 6 95
100
I...

output:

10620
10644
10644
10594
10547
11947
11974
11464
13964
20564
20564
20564
20564
24064
24064
24064
24064
24064
24064
24064
24064
24064
27464
28464
28464
28464
28464
28464
28464
28464
28464
33164
33164
33164
38964
38964
40364
40364
48064
50664
50664
50664
50664
50664
50664
50664
50664
50664
50764
51564
...

result:

ok 100 numbers

Test #9:

score: 28
Accepted
time: 0ms
memory: 3636kb

input:

100
41 80 1 49 33 12 95 58 38 66 53 26 29 12 49 64 17 30 59 77 63 7 42 30 25 37 64 18 88 9 37 91 91 36 34 10 32 4 26 40 20 93 96 74 42 29 76 71 86 13 21 13 28 2 10 45 60 78 91 80 4 15 23 29 73 26 10 16 71 61 57 72 61 11 16 53 44 38 4 26 55 41 10 46 25 69 18 30 78 22 3 51 17 43 56 81 23 39 23 24
1
SE...

output:

4299

result:

ok 1 number(s): "4299"

Test #10:

score: 0
Runtime Error

input:

100
9 4 6 5 1 9 10 7 3 4 8 4 10 10 2 1 5 6 10 10 3 5 5 5 5 7 2 9 8 6 10 5 1 3 7 10 10 8 4 7 8 6 5 9 9 6 4 3 9 3 5 9 2 4 4 5 1 9 5 1 10 9 9 10 2 2 5 2 5 4 3 10 6 10 6 1 8 10 2 10 1 1 10 2 5 4 4 6 7 10 2 6 10 5 3 1 6 6 7 4
100
SET 4 5
SET 9 2
SET 4 5
SET 10 2
SET 5 1
SET 2 5
SET 7 8
SET 9 1
SET 8 5
SE...

output:


result:


Subtask #3:

score: 19
Accepted

Test #22:

score: 19
Accepted
time: 94ms
memory: 15656kb

input:

300000
951351 399077 631051 774844 106866 983747 985797 551211 280105 755685 239394 499384 426078 235060 496603 342116 956581 934742 542102 616510 709067 207632 690607 166356 733456 276205 265791 82499 190425 231230 882006 759975 728793 539410 543318 537385 857482 886000 862880 438199 937944 615644 ...

output:

392965539146
675775239146
814176639146
974046639146
1145572239146
1277367339146
1556017839146
1750549839146
1880621439146
2179876239146
2188536939146
2219483439146
2344590639146
2550157539146
2608144839146
2757664539146
2854521339146
3119311839146
3366236139146
3639235239146
3925919739146
4191075039...

result:

ok 100000 numbers

Test #23:

score: 19
Accepted
time: 66ms
memory: 14716kb

input:

300000
8260 5218 6200 7194 4744 7153 45 4146 2619 7974 847 7550 2297 7235 6203 577 1286 5156 8131 831 4093 6302 9500 3826 3162 5486 4286 9348 9575 2862 9270 1771 8006 6341 181 8149 7338 1803 918 6989 3290 5033 6692 5520 2465 941 7173 5839 4939 2055 3653 2126 4738 7435 1976 9048 6690 2854 5091 3598 2...

output:

2605785375
4399485375
5759685375
6541485375
8954385375
10950885375
13432785375
16266585375
16637685375
17009685375
18515085375
19884885375
20803485375
21097185375
22032885375
24453585375
25363485375
25745385375
27074385375
29674185375
31426185375
34337685375
35240085375
37783785375
40687185375
41079...

result:

ok 100000 numbers

Test #24:

score: 19
Accepted
time: 43ms
memory: 16080kb

input:

300000
8 9 58 58 61 70 52 40 18 73 86 54 89 26 7 19 90 55 48 66 33 62 5 39 17 73 70 88 93 4 17 75 93 89 7 84 42 29 6 78 8 7 87 92 2 89 37 88 22 94 42 80 56 41 97 22 68 71 46 53 60 46 4 67 30 23 36 63 24 43 35 88 93 6 72 10 61 64 85 31 5 38 38 85 13 100 2 48 73 49 56 50 86 16 43 3 2 45 65 49 82 48 34...

output:

36749958
60449958
88949958
102749958
113249958
133349958
156449958
175649958
204149958
220949958
247649958
251849958
254549958
276149958
285449958
297749958
314849958
340349958
346049958
362849958
365549958
368849958
398549958
419549958
421049958
429149958
449249958
469949958
490349958
499649958
507...

result:

ok 100000 numbers

Test #25:

score: 19
Accepted
time: 29ms
memory: 15172kb

input:

300000
5 4 7 10 4 10 10 6 10 2 5 6 5 9 9 4 5 2 6 2 5 4 7 10 7 6 9 3 6 3 3 2 4 8 10 3 1 10 7 5 1 7 1 3 1 8 4 3 4 2 1 6 1 10 6 2 7 1 1 7 7 5 9 3 10 1 1 9 3 4 7 4 3 8 5 10 4 6 3 7 1 7 3 6 9 9 6 3 5 5 8 6 2 3 6 2 7 3 9 5 7 1 9 8 9 10 7 1 2 10 7 2 2 5 5 2 5 4 6 6 7 3 7 1 4 2 9 2 9 9 6 1 3 5 8 2 5 4 8 7 3...

output:

3748987
4648987
6148987
7048987
7648987
8848987
11248987
14248987
15448987
16648987
18448987
19948987
21748987
22348987
24448987
27148987
28948987
30448987
33448987
33748987
36748987
38248987
38548987
40948987
43348987
46048987
47248987
48748987
49648987
49948987
52648987
53548987
54148987
55048987
...

result:

ok 100000 numbers

Test #26:

score: 19
Accepted
time: 28ms
memory: 14688kb

input:

300000
2 2 1 2 1 1 2 2 1 2 1 2 1 2 2 1 2 2 1 1 1 2 2 2 2 1 2 2 1 2 1 2 2 2 2 1 1 1 1 2 1 1 2 1 2 1 1 2 2 2 2 2 1 2 1 2 1 2 1 1 1 2 1 1 2 2 2 2 2 1 2 2 2 1 1 2 2 2 2 1 1 2 2 2 1 2 1 2 2 2 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 2 2 1 2 2 1 1 1 1 1 1 2 1 2 2 2 2 1 2 1 1 1 2 1 2 1 2 1 2 2 2 2 2 2 2 1 1 2 2 2 2...

output:

1049646
1649646
2249646
2549646
2849646
3149646
3449646
4049646
4349646
4949646
5549646
6149646
6449646
6749646
7049646
7349646
7649646
7949646
8249646
8549646
8849646
9149646
9449646
9749646
10349646
10949646
11549646
11849646
12149646
12449646
13049646
13349646
13649646
14249646
14849646
15449646
...

result:

ok 100000 numbers

Test #27:

score: 19
Accepted
time: 34ms
memory: 14944kb

input:

300000
1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 10000...

output:

600000000000
900000000000
1200000000000
1500000000000
1800000000000
2100000000000
2400000000000
2700000000000
3000000000000
3300000000000
3600000000000
3900000000000
4200000000000
4500000000000
4800000000000
5100000000000
5400000000000
5700000000000
6000000000000
6300000000000
6600000000000
69000000...

result:

ok 100000 numbers

Subtask #4:

score: 0
Runtime Error

Test #28:

score: 0
Runtime Error

input:

300000
947318 850376 902969 604347 67162 326934 983509 617741 797556 532417 364000 987510 494945 673154 690612 243955 959719 909872 189543 627965 826065 586321 119252 290670 655680 527058 254003 559766 354780 659156 812403 214395 771905 87515 353059 677708 142575 286504 122078 61221 239279 348056 55...

output:


result:


Subtask #5:

score: 0
Runtime Error

Test #37:

score: 16
Accepted
time: 1ms
memory: 5656kb

input:

1
23
100
INFLATION 65
INFLATION 37
INFLATION 28
INFLATION 41
INFLATION 53
INFLATION 46
SET 81 22
INFLATION 91
SET 45 85
SET 85 14
INFLATION 58
INFLATION 89
SET 98 60
INFLATION 75
INFLATION 97
SET 91 53
INFLATION 31
INFLATION 51
SET 81 78
SET 16 78
INFLATION 59
SET 10 74
INFLATION 55
SET 7 50
INFLATI...

output:

88
125
153
194
247
293
293
384
384
384
442
531
531
606
703
703
734
785
785
785
844
844
899
899
948
974
1005
1005
1005
1005
1089
1105
1105
1105
1162
1162
1162
1219
1219
1303
1308
1337
1353
1374
1374
1407
1407
1456
1474
1492
1571
1658
1730
1797
1896
1939
1939
2033
2057
2077
2077
2106
2106
2185
2228
23...

result:

ok 100 numbers

Test #38:

score: 16
Accepted
time: 16ms
memory: 9068kb

input:

1
93778
100000
INFLATION 32663
INFLATION 554818
INFLATION 110963
INFLATION 345746
INFLATION 409131
INFLATION 445328
INFLATION 7625
INFLATION 837471
INFLATION 357915
INFLATION 82015
INFLATION 99255
INFLATION 665483
INFLATION 736596
INFLATION 673403
INFLATION 147405
INFLATION 853547
INFLATION 314698
I...

output:

126441
681259
792222
1137968
1547099
1992427
2000052
2837523
3195438
3277453
3376708
4042191
4778787
5452190
5599595
6453142
6767840
6963574
7364083
7594986
8180278
8862838
9464475
9905652
10051918
10642952
11248354
11808260
11920658
12441175
13407678
14069924
14461680
15028874
15322941
16078076
167...

result:

ok 100000 numbers

Test #39:

score: 16
Accepted
time: 15ms
memory: 10624kb

input:

1
119480
100000
INFLATION 87697
INFLATION 153264
INFLATION 499451
INFLATION 506614
INFLATION 190649
INFLATION 837450
INFLATION 218924
INFLATION 757474
INFLATION 228496
INFLATION 429224
INFLATION 933596
INFLATION 756140
INFLATION 680926
INFLATION 927777
INFLATION 223205
INFLATION 85390
INFLATION 4625...

output:

207177
360441
859892
1366506
1557155
2394605
2613529
3371003
3599499
4028723
4962319
5718459
6399385
7327162
7550367
7635757
8098284
8945758
9620063
9720939
10492548
10837252
10954600
11434972
12346508
13251248
13906151
14829003
15036516
15314113
15845720
16807010
17626024
17778075
18117950
18890458...

result:

ok 100000 numbers

Test #40:

score: 0
Runtime Error

input:

1
57
100000
INFLATION 3
SET 60 81
SET 60 77
SET 60 3
INFLATION 22
SET 25 10
SET 99 59
SET 59 69
SET 25 54
SET 25 14
SET 69 53
SET 53 47
SET 59 45
SET 47 10
SET 47 53
SET 10 40
SET 40 87
SET 53 79
SET 69 78
SET 53 72
SET 25 79
SET 10 53
SET 53 49
SET 79 70
SET 40 54
SET 45 27
SET 103 9
SET 53 23
SET ...

output:


result: