QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#390960#3270. 魔塔 OL274551858510 51ms268348kbC++202.3kb2024-04-16 09:49:282024-04-16 09:49:29

Judging History

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

  • [2024-04-16 09:49:29]
  • 评测
  • 测评结果:10
  • 用时:51ms
  • 内存:268348kb
  • [2024-04-16 09:49:28]
  • 提交

answer

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=50001,K=10001,Q=150001,M=14;
int n,m,q,c[Q],d[N],lg[1<<M];
short f1[K][N/M],f2[K][N/M],f3[K][N/M],h[N/M];
ll g1[N/M][1<<M],g2[N/M][1<<M];
struct str
{
    int x,y,z,a,b,t;
}a[N];
struct
{
    int x,y,z;
}b[N];
void add(short *a,int x)
{
    a[x/M]^=(1<<(x%M));
}
bool cmp(str a,str b)
{
    if((a.a<a.b)^(b.a<b.b)) return a.a<a.b;
    if(a.a<a.b) return a.a<b.a;
    else return a.b>b.b;
}
int main()
{
    scanf("%d",&m);
    for(int i=1;i<=m;++i)
    {
        char z;
        scanf("%s",&z);
        if(z=='+')
        {
            ++n;
            scanf("%d%d%d%d%d",&a[n].x,&a[n].y,&a[n].z,&a[n].a,&a[n].b);
            a[n].t=n;
            c[i]=n;
        }
        else if(z=='-')
        {
            scanf("%d",&c[i]);
        }
        else if(z=='?')
        {
            ++q;
            scanf("%d%d%d",&b[q].x,&b[q].y,&b[q].z);
            c[i]=-q;
        }
    }
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;++i) d[a[i].t]=i;
    for(int i=1;i<=m;++i)
    {
        if(c[i]>0) c[i]=d[c[i]];
    }
    for(int i=1;i<=n;++i)
    {
        add(f1[a[i].x],i);
        add(f2[a[i].y],i);
        add(f3[a[i].z],i);
    }
    for(int i=1;i<=10000;++i)
    {
        for(int j=0;j<=n/M;++j)
        {
            f1[i][j]^=f1[i-1][j];
            f2[i][j]^=f2[i-1][j];
            f3[i][j]^=f3[i-1][j];
        }
    }
    if(n==150000) return 0;
    for(int i=0;i<=M-1;++i)
    {
        for(int j=(1<<i);j<=(1<<(i+1))-1;++j) lg[j]=i;
    }
    for(int i=0;i<=n/M;++i)
    {
        for(int j=1;j<=(1<<M)-1;++j)
        {
            g1[i][j]=min(g1[i][j^(1<<lg[j])],g2[i][j^(1<<lg[j])]-a[i*M+lg[j]].a);
            g2[i][j]=g2[i][j^(1<<lg[j])]-a[i*M+lg[j]].a+a[i*M+lg[j]].b;
        }
    }
    for(int i=1;i<=m;++i)
    {
        if(c[i]>0)
        {
            add(h,c[i]);
        }
        else
        {
            int t=-c[i];
            ll s=0,w=0;
            for(int j=0;j<=n/M;++j)
            {
                int p=f1[b[t].x][j]&f2[b[t].y][j]&f3[b[t].z][j]&h[j];
                s=min(s,w+g1[j][p]);
                w+=g2[j][p];
            }
            printf("%lld\n",-s);
        }
    }
    return 0;
}

詳細信息

Subtask #1:

score: 3
Accepted

Test #1:

score: 3
Accepted
time: 4ms
memory: 126356kb

input:

10
+ 2 1 1 3 4
+ 1 2 2 2 5
? 2 2 2
+ 1 1 1 8 2
? 2 2 1
? 1 2 2
- 1
? 2 2 2
- 3
? 1 2 2

output:

2
7
5
5
2

result:

ok 5 lines

Test #2:

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

input:

24
+ 1753 1095 4823 848018166 5601858
+ 3635 2923 7293 78801729 4982097
+ 4314 6396 5125 589512425 8363663
? 8152 8403 6056
+ 9016 7943 8050 764333567 3409718
? 3516 8598 7385
? 1126 7574 1443
+ 2684 1515 2348 83534456 3012204
- 5
? 1861 8978 2163
- 4
? 480 2246 9251
- 1
+ 3844 6148 4596 110822346 7...

output:

1429166928
848018166
0
0
0
0
0
0

result:

ok 8 lines

Test #3:

score: 0
Accepted
time: 0ms
memory: 142328kb

input:

24
+ 9833 6751 5339 125176046 14445
+ 1422 2896 2855 729112474 32204
+ 636 3368 6257 631353523 97285
+ 7661 7136 8410 801391911 74940
? 7519 1330 3067
? 9524 4467 711
? 2291 8608 9213
- 1
? 1174 1586 7861
? 2265 4657 349
? 8213 4439 7824
+ 9135 101 6409 977821442 34327
+ 1115 2298 9752 392083250 697...

output:

0
0
1360368712
0
0
1360368712
729112474
729112474

result:

ok 8 lines

Test #4:

score: 0
Accepted
time: 3ms
memory: 141976kb

input:

24
+ 5489 9970 1398 56343180 451
+ 1396 1562 433 123478310 271
- 2
+ 7608 4501 7224 982256325 947
- 3
? 9813 5754 2918
? 2389 7502 4690
+ 5393 498 3406 73387341 297
? 621 6378 5221
? 3593 3767 6323
- 1
+ 3286 7926 6941 820762494 364
- 5
+ 8217 6480 9506 484820290 71
- 6
+ 9300 262 4419 859278667 105...

output:

0
0
0
0
0
0
0
0

result:

ok 8 lines

Test #5:

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

input:

8
? 1117 6081 8661
? 5702 6655 5962
? 4712 8281 9732
? 4472 3953 2253
? 8402 8576 2723
? 8258 6776 1630
? 9363 4534 9896
? 8271 8778 1846

output:

0
0
0
0
0
0
0
0

result:

ok 8 lines

Test #6:

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

input:

24
+ 310 6758 7068 581664379 614379561
? 431 4963 9146
+ 8040 7145 2374 921183974 119186212
? 739 2475 4540
+ 7023 2014 2972 87001226 131388922
+ 332 1474 3058 965714110 106555937
- 1
? 6232 3770 731
? 3571 5680 4059
+ 6128 4706 1280 517406107 709876522
? 7499 5319 7619
? 8343 4010 2781
+ 2990 2854 ...

output:

0
0
0
965714110
728855999
0
191994852
191994852

result:

ok 8 lines

Test #7:

score: 0
Accepted
time: 3ms
memory: 142012kb

input:

24
? 7531 9176 7945
+ 6869 6976 9568 811496150 65260266
+ 6002 7147 3653 399332739 802592034
+ 1589 1206 9875 491845336 674971274
+ 2606 7949 8709 732507238 685138894
- 4
- 3
+ 7773 2691 4846 806580794 444791436
? 8302 1260 612
+ 9474 585 6602 228111503 673775897
+ 7377 2531 1730 989204815 313215502...

output:

0
0
0
0
0
0
0
0

result:

ok 8 lines

Test #8:

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

input:

24
+ 6076 6882 697 357720969 18505713
+ 8522 7101 7498 273203817 247602668
+ 5282 5228 6668 389453604 672327934
? 6379 8137 1715
? 7691 1160 2306
+ 2065 3609 2107 39462790 995011849
- 2
+ 7821 3053 4992 54012550 598488583
? 2742 7408 4111
+ 8142 2626 2703 378261715 799364458
+ 8988 6063 8298 8459843...

output:

357720969
0
39462790
0
0
0
0
0

result:

ok 8 lines

Test #9:

score: 0
Accepted
time: 4ms
memory: 141096kb

input:

24
+ 4703 1944 1160 450781972 720568789
+ 3502 6991 8127 106832475 971539963
? 3141 943 3234
+ 5361 8172 8148 172500308 209720541
- 3
- 1
+ 4124 2386 6673 396124268 408795532
+ 7267 8100 7795 710193258 706757641
? 3147 654 9372
+ 7795 2301 1587 223112271 672239899
? 4553 738 5182
+ 6188 7219 243 764...

output:

0
0
0
0
0
0
0
0

result:

ok 8 lines

Test #10:

score: 0
Accepted
time: 0ms
memory: 140352kb

input:

24
+ 1015 3099 4819 69198894 934987604
+ 1971 6075 3089 18416465 126949453
+ 3346 4984 4780 756144 637251010
+ 9173 1405 1768 90360802 606947317
+ 1452 1393 6947 86736593 700812438
+ 7794 9412 1997 52466993 263586896
- 5
+ 6442 6634 8262 33830753 203825632
? 5518 522 7828
- 1
- 3
+ 3365 8793 7708 64...

output:

0
0
0
0
0
0
0
0

result:

ok 8 lines

Test #11:

score: 0
Accepted
time: 4ms
memory: 142444kb

input:

24
+ 9703 133 3965 55149 848473280
? 794 7392 2211
? 6854 1133 7922
+ 5774 6768 6550 19909 92266756
- 2
? 4784 2895 2924
+ 2589 9679 8865 93993 586178413
+ 6266 516 8968 99691 77932883
? 5982 5547 905
+ 7947 3208 3227 44903 268728227
- 5
- 4
+ 6508 3419 6547 26144 770044013
? 3120 2629 5910
+ 8616 2...

output:

0
0
0
0
0
0
0
0

result:

ok 8 lines

Test #12:

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

input:

24
+ 3428 3207 272 398860932 94104753
? 7644 5501 6242
? 4375 4880 3925
? 1803 4173 8176
? 6042 1710 2170
+ 3748 5518 3602 909430193 42284174
+ 3649 9013 9199 375710242 7718045
- 3
? 919 5751 4803
+ 3223 324 8116 531239473 10475148
? 1915 3129 9903
+ 7144 6800 8556 652921806 11521155
- 1
- 4
+ 4427 ...

output:

398860932
398860932
0
0
0
0
432397460
0

result:

ok 8 lines

Subtask #2:

score: 7
Accepted

Dependency #1:

100%
Accepted

Test #13:

score: 7
Accepted
time: 32ms
memory: 263240kb

input:

15000
+ 9754 4951 2299 36950620 330476254
? 7852 3754 6437
+ 7960 5847 3889 877365182 511620385
+ 2042 1318 3674 509235230 295832114
+ 8026 1900 3586 787277573 238947685
? 3297 71 4102
? 7652 9321 3721
? 1782 8456 2128
? 3892 8535 3934
+ 4911 3952 9686 951709847 5471156
+ 567 5092 9346 132609563 645...

output:

0
0
509235230
0
509235230
0
0
799337462
0
0
0
575363546
0
955299529
799337462
0
0
1724967630
320029391
590850186
1250598046
0
548236941
509235230
548236941
389915580
509235230
0
578425355
799337462
1197972240
0
0
35119488
837528941
758929477
891443369
548236941
0
1242763152
0
35119488
0
0
0
0
351194...

result:

ok 5000 lines

Test #14:

score: 0
Accepted
time: 31ms
memory: 263636kb

input:

15000
+ 9000 6045 9181 863134447 327523157
+ 5800 3917 4897 494849846 170888604
+ 8224 524 7309 567221629 163056241
? 2839 4181 2426
? 1731 3056 6432
+ 8778 8718 3130 146110843 137080516
+ 4985 3689 8556 456546147 7602401
+ 356 9954 3979 273061519 454609666
+ 1209 9046 4448 642768233 777950592
+ 879...

output:

0
0
0
144925021
0
0
846135812
0
0
0
1426212455
1659355410
827991846
846135812
1194975799
0
846135812
377185177
0
248809656
2138119062
438946756
0
438946756
2724060363
748592853
0
873547760
846135812
0
383144069
227838083
39166976
39166976
39166976
846135812
39166976
39166976
39166976
3947224442
3916...

result:

ok 5000 lines

Test #15:

score: 0
Accepted
time: 40ms
memory: 267608kb

input:

15000
+ 951 7138 255 320722052 324570060
+ 2596 7803 3430 410802879 748644857
? 3555 6250 6021
? 3881 2359 5828
? 2110 933 7043
+ 4862 2175 1664 481128464 24445604
? 1280 3044 69
+ 368 299 6465 110630763 605821477
+ 1298 1572 1823 6340608 435831189
+ 8497 471 8990 862173030 294426772
? 2582 3988 118...

output:

0
0
0
0
0
6340608
6340608
184769081
0
6340608
6340608
110630763
6340608
6340608
0
184769081
0
110630763
144559506
6340608
0
0
184769081
0
6340608
6340608
6340608
284186499
209374819
6340608
6340608
166088998
600045165
0
24708843
6340608
6340608
6340608
110630763
600045165
6340608
0
6340608
6340608
6...

result:

ok 5000 lines

Test #16:

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

input:

15000
? 1330 3972 8167
+ 7771 2045 28 71596349 316831431
+ 4392 5643 8439 793300118 365317022
? 1145 1085 1131
? 1981 4834 3010
? 7898 2215 2137
+ 9452 8525 6012 308068582 222805994
+ 3109 1021 3834 149338880 460129515
+ 8252 8596 2476 25387218 893568152
+ 9457 8518 1637 365077612 577489093
+ 7750 4...

output:

0
0
0
71596349
0
149338880
0
0
71596349
149338880
482509483
0
149338880
0
339204739
0
0
149338880
646121546
0
339204739
0
347036011
0
0
840777389
0
818079693
25387218
0
8400682
0
28267956
586256202
940165346
0
8400682
5137674
940165346
0
0
1146605530
623425462
1009743383
8400682
0
0
0
8400682
635897...

result:

ok 5000 lines

Test #17:

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

input:

15000
? 8212 7747 6199
? 5369 4852 6221
+ 857 4971 2870 21781664 537676236
? 9139 6445 3549
? 8576 2601 6708
+ 4132 7656 9581 659855253 194286236
? 3171 5622 517
? 3171 327 2791
+ 5787 5851 4846 918160613 261675926
+ 1379 2503 9812 686149995 413030048
+ 320 3121 1973 208594175 204418683
+ 9169 5837 ...

output:

0
0
21781664
0
0
0
0
0
417771032
0
933665604
208594175
249449409
21781664
21781664
417771032
0
0
986604907
29341218
21781664
29341218
173452390
173452390
29341218
0
310828376
302388712
310828376
0
0
698493757
173452390
7884628
0
85153293
21781664
0
0
643737804
0
10510955
7884628
21781664
1387723437
...

result:

ok 5000 lines

Test #18:

score: 0
Accepted
time: 31ms
memory: 263364kb

input:

15000
+ 837 3441 1582 5253755 930660276
? 8689 9131 528
+ 4211 2422 5160 6252539 907522408
? 5609 9790 4958
+ 3432 9848 2969 4896645 940041091
+ 3206 796 2996 4324022 502262890
+ 5174 3152 4568 113382 730527877
+ 980 3333 9883 3057033 196077695
+ 4799 5142 3509 3458598 100286630
+ 9905 3615 8329 927...

output:

0
5253755
3458598
5253755
5253755
5253755
9436006
4324022
113382
113382
4324022
4324022
0
0
867679
0
0
782618
867679
867679
0
0
5253755
0
867679
0
782618
0
0
867679
113382
113382
0
867679
0
867679
0
0
867679
782618
0
0
0
0
0
867679
867679
113382
782618
0
700552
535909
0
535909
535909
1670398
535909
...

result:

ok 5000 lines

Test #19:

score: 0
Accepted
time: 43ms
memory: 266652kb

input:

15000
? 3626 6634 706
? 582 4658 8319
+ 8038 8232 6351 148817232 19413256
+ 3461 40 3308 437404415 36165359
+ 4151 5967 4070 30914737 15176710
? 1288 5080 6184
+ 4930 9177 4330 947817077 4805014
? 5408 4013 1507
+ 1577 348 6484 542555954 13288929
+ 5453 364 6644 751430050 669281
? 5356 1904 8389
+ 7...

output:

0
0
0
0
943795010
1681936131
270965968
1382835375
0
3579152160
2639972120
632435278
3039344651
270965968
0
270965968
437404415
0
270965968
0
9127712031
2340849315
7463345443
0
1359397476
0
1377000336
0
3316860695
437404415
9298965753
380650058
1538402434
380650058
417208885
4307614967
400461565
0
0
...

result:

ok 5000 lines

Test #20:

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

input:

15000
? 3611 820 322
+ 68 6093 7344 309660603 8512708
+ 9882 7331 2103 909793528 3687386
+ 1138 4890 983 723391503 1141995
+ 4152 9237 9559 368251712 1852709
+ 1125 9752 5938 889181325 3511910
+ 3283 9654 5264 798148638 5602588
+ 3969 5422 5395 231270203 718652
+ 844 9893 7504 648724319 7248904
+ 64...

output:

0
0
0
723391503
723391503
1842658494
3508915764
90640885
2547470891
0
234293253
2126743406
0
1886611066
1362525704
90640885
0
0
234293253
6846238386
0
5602549623
2436552350
1238971762
2141877364
920903399
4563307221
0
0
0
723391503
0
10337046004
652693183
0
2094945541
723391503
19414268394
652693183...

result:

ok 5000 lines

Test #21:

score: 0
Accepted
time: 31ms
memory: 261680kb

input:

15000
+ 2801 8433 1829 827936405 969585
? 3554 6367 5498
+ 2376 6776 7720 574207248 923476
+ 6613 3146 9378 418383056 692192
? 5159 1876 4183
? 8151 2128 7976
+ 5623 5911 6955 870974472 262457
+ 7705 3889 1572 267612426 193840
+ 5878 8297 1889 949419857 909460
? 2892 6894 9481
+ 9002 6208 2127 17602...

output:

0
0
0
574207248
1447046366
220786949
220786949
198485575
0
0
220786949
0
4729943861
1058959264
6235959933
0
4713794925
0
0
2808741354
8162816820
14909424
0
615261353
497270752
1066222454
6951160136
2520242767
937344669
101280125
2250020267
0
11483417654
1946958292
517978806
14909424
14909424
3799993...

result:

ok 5000 lines

Test #22:

score: 0
Accepted
time: 40ms
memory: 267012kb

input:

15000
? 1822 8820 1908
? 6083 1623 4227
+ 2418 2824 8807 17003027 76795
+ 8008 4258 9437 554693365 68917
? 2489 3921 7965
+ 3031 2477 9191 233409376 44619
+ 275 7141 8883 632058327 24232
? 2823 344 8326
? 4155 616 839
+ 4987 8144 4847 428926401 72189
+ 1182 1452 4110 318600919 38488
? 7018 1554 9239...

output:

0
0
0
0
0
318600919
318600919
318600919
318600919
822156885
1752483691
301111585
0
301111585
830297218
301111585
830297218
2204007159
0
318600919
338944729
422177019
810476550
948847527
0
0
0
931541984
2883343968
2060522423
5573300097
2636499601
810476550
318600919
3775501120
0
5139311198
2342378136...

result:

ok 5000 lines

Test #23:

score: 0
Accepted
time: 43ms
memory: 263424kb

input:

15000
? 4398 952 1402
+ 6182 1283 9449 125619308 3324
+ 5052 3754 4403 940063798 7205
? 5829 8922 1931
? 3773 9074 6359
+ 5199 3920 7495 700019470 6744
+ 5061 4344 6013 240536850 6853
+ 822 2757 5213 726945179 9781
+ 2472 2802 3895 668906250 3499
+ 7575 213 5230 996820178 794
? 2508 2979 6516
+ 7428...

output:

0
0
0
1395841648
0
1395841648
0
0
5247832105
249492314
6975588404
9526409743
1269626113
0
0
0
3312824127
0
0
1388900157
1130300143
0
6478380651
0
675045491
0
0
971474622
0
15013028304
7606104219
724850564
1858905499
49811071
249492314
2109763404
21604570710
3196438136
2036028508
1595679425
231376802...

result:

ok 5000 lines

Subtask #3:

score: 0
Time Limit Exceeded

Test #24:

score: 0
Time Limit Exceeded

input:

150000
+ 588 392 1 640173034 0
? 7190 2026 1
? 8338 9467 1
+ 332 5522 1 648776911 0
? 650 9239 1
? 6609 1361 1
+ 6028 8919 1 315490561 0
+ 6129 3818 1 716541323 0
+ 2679 2249 1 94302018 0
? 4777 8851 1
+ 1382 186 1 295931805 0
+ 3956 7752 1 275694182 0
+ 6412 2498 1 363908456 0
+ 8317 3132 1 2800724...

output:

2074067908132
11019226547412
817907746175
1287253004848
5884947061029
787965292571
1994482058703
8177793918861
1648055046671
1165240674392
7397954237107
8634304688792
4006125012670
3890709850375
7394460145869
2053750266745
7166348506597
31409360782
7898167222635
8804726903
1417417857923
369710509207...

result:


Subtask #4:

score: 0
Time Limit Exceeded

Test #33:

score: 0
Time Limit Exceeded

input:

150000
? 5 2 1
+ 4 2 1 783649445 157723097
+ 3 4 1 281409092 43289613
+ 2 3 2 673972686 123253436
? 3 5 3
? 4 2 3
+ 5 5 2 534941804 768558960
+ 2 4 4 103433782 913423755
+ 1 2 3 99618767 608469807
+ 5 4 4 852574365 108454346
? 4 5 5
+ 1 2 4 647253960 383418735
+ 1 5 1 854207792 811999048
+ 4 2 4 995...

output:

65526178736
52182410718
42485040898
38728370530
3268560029
28800166025
45457509431
80378377797
23556332425
8602065102
72684452843
10417204725
42618915986
106598542492
84637717517
13784004895
52015657131
37822945093
62827898051
37924798578
2394706047
1438872
80722613145
55883117707
1889607
6498252480...

result:


Subtask #5:

score: 0
Time Limit Exceeded

Test #47:

score: 0
Time Limit Exceeded

input:

150000
+ 9842 1 1 26088315 73696334
+ 2239 1 1 340356927 653719371
+ 349 1 1 632186088 849099938
? 908 1 1
+ 5153 1 1 487261860 697113681
? 984 1 1
+ 5694 1 1 800262114 571078829
? 1152 1 1
+ 3322 1 1 855670925 826813576
+ 8218 1 1 45843349 617723019
+ 3988 1 1 641119549 840483348
+ 3253 1 1 1654789...

output:

25307766814
27245283574
35830253886
34285624644
117917784596
38605582149
70532114138
77964817396
108382017650
112177295344
24094762409
95706678903
11384507912
66962543133
71899690205
31327692616
79598929469
65857429072
12005793829
68056237918
89280992503
24423505664
74115201523
36034384311
436267984...

result:


Subtask #6:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

0%