QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#664033 | #7154. Inflation | Warinchai_s# | 19 | 94ms | 16080kb | C++14 | 1.8kb | 2024-10-21 19:00:41 | 2024-10-21 19:00:44 |
Judging History
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";
}
}
}
详细
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 ...