QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#397468 | #5308. RPG Pro League | 2745518585 | WA | 166ms | 11884kb | C++20 | 2.6kb | 2024-04-24 10:13:45 | 2024-04-24 10:13:45 |
Judging History
answer
#include<cstdio>
#include<algorithm>
#include<vector>
#include<set>
using namespace std;
typedef long long ll;
const int N=1000001;
int n,m,b[N],f[16],p[16],g[8];
bool h[N];
ll s;
struct str
{
int a,b,t;
friend bool operator<(str a,str b)
{
return a.b<b.b;
}
}a[N];
set<str> Set[8][2];
void add(int x)
{
if(h[x])
{
for(auto j=1;j<=15;++j) if(j&g[a[x].a]) --f[j];
s-=a[x].b;
}
h[x]^=1;
if(h[x])
{
for(auto j=1;j<=15;++j) if(j&g[a[x].a]) ++f[j];
s+=a[x].b;
}
}
int sum()
{
int s=1e9;
for(int i=1;i<=15;++i)
{
s=min(s,f[i]/p[i]);
}
return s;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)
{
static char z[5];
z[0]=z[1]=z[2]=0;
scanf("%s%d",z,&a[i].b);
if(z[0]=='D'||z[1]=='D'||z[2]=='D') a[i].a|=1;
if(z[0]=='S'||z[1]=='S'||z[2]=='S') a[i].a|=2;
if(z[0]=='B'||z[1]=='B'||z[2]=='B') a[i].a|=4;
a[i].t=i;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;++i)
{
b[a[i].t]=i;
a[i].t=i;
}
for(int i=1;i<=7;++i)
{
if(i&1) g[i]|=1;
if(i&2) g[i]|=2;
if(i&3) g[i]|=4;
if(i&4) g[i]|=8;
}
for(int i=1;i<=15;++i) p[i]=p[i^(i&-i)]+1;
for(int i=1;i<=n;++i) add(i);
int q=sum();
for(int i=n;i>=1;--i)
{
add(i);
if(sum()<q) add(i);
}
// printf("%d %lld\n",q,s);
for(int i=1;i<=n;++i)
{
Set[a[i].a][h[i]].insert(a[i]);
}
scanf("%d",&m);
for(int i=1;i<=m;++i)
{
int x,k;
scanf("%d%d",&x,&k);
x=b[x];
Set[a[x].a][h[x]].erase(a[x]);
if(h[x]) s-=a[x].b;
a[x].b=k;
Set[a[x].a][h[x]].insert(a[x]);
if(h[x]) s+=a[x].b;
int u=0;
ll v=s;
for(int i=1;i<=7;++i)
{
int t=0;
if(h[x])
{
if(!Set[i][0].empty()) t=Set[i][0].begin()->t;
}
else
{
if(!Set[i][1].empty()) t=prev(Set[i][1].end())->t;
}
if(t!=0)
{
add(x),add(t);
if(sum()==q&&s<v) v=s,u=t;
add(x),add(t);
}
}
if(u!=0)
{
Set[a[x].a][h[x]].erase(a[x]);
Set[a[u].a][h[u]].erase(a[u]);
add(x),add(u);
Set[a[x].a][h[x]].insert(a[x]);
Set[a[u].a][h[u]].insert(a[u]);
}
printf("%lld\n",s);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3960kb
input:
5 BS 3 D 3 B 2 D 4 D 5 2 5 2 1 5
output:
10 12
result:
ok 2 number(s): "10 12"
Test #2:
score: 0
Accepted
time: 166ms
memory: 11876kb
input:
100000 B 727564174 S 231637747 D 246625257 S 975124756 D 844292741 S 809641006 B 396062588 B 883224128 B 311130283 S 434433581 S 509817048 S 993501344 S 508399542 B 279564062 D 950946642 D 819528264 D 412285620 B 968540732 S 953428318 D 902181790 S 172330493 D 725075 B 135580649 D 714478555 B 466916...
output:
40721766963064 40720937650054 40721120372880 40720722768213 40721029809776 40720546822562 40719680807733 40720084910620 40720153432078 40720873952927 40721146683113 40721696875436 40722235723316 40722133896063 40723047443192 40723419347010 40722633976087 40722282806304 40722071958869 40721278798949 ...
result:
ok 100000 numbers
Test #3:
score: 0
Accepted
time: 156ms
memory: 11836kb
input:
100000 S 139759881 S 606246897 D 295439937 S 30506154 B 815842927 D 195502949 S 172358189 B 763560428 S 862087943 B 413481091 B 775973599 B 336841814 S 116523655 D 670479401 S 405979654 D 246440323 B 764165518 S 20267667 S 327264314 B 44539411 B 353491632 D 5202858 S 842200033 S 337952200 D 6150168 ...
output:
40524529913817 40524860528295 40524824503871 40524293726866 40524353142964 40524176391157 40524132308308 40524134826811 40524107274580 40524341365401 40524194084164 40524572093940 40524910630137 40525296284478 40525633925207 40525793456210 40526041232042 40526041232042 40526144290799 40526737278038 ...
result:
ok 100000 numbers
Test #4:
score: 0
Accepted
time: 151ms
memory: 11820kb
input:
100000 B 567185557 S 731841946 S 365565517 D 767568967 B 450159068 D 658059427 S 790559143 B 356623472 S 541664149 D 447906802 B 407933323 S 403512209 D 187294244 D 351683584 S 504286757 D 212023807 B 51119045 S 84059041 S 819097063 D 115224344 B 104478594 B 446088838 D 153595287 S 749172175 S 57160...
output:
40639770818547 40639473223932 40639909468709 40639327970968 40639021798510 40639377404325 40638848317225 40638755074708 40638463360482 40638463360482 40638225443217 40638907566106 40638907566106 40638707391259 40638642781389 40638809562003 40637986313647 40637481713492 40636989271046 40636464147095 ...
result:
ok 100000 numbers
Test #5:
score: 0
Accepted
time: 136ms
memory: 11832kb
input:
100000 BS 609181774 BS 498815665 BS 729225393 S 366911976 D 192782776 DB 109052372 D 927091614 SD 120687185 D 619604491 DB 405398892 BS 947957264 DB 134896320 S 909342292 DS 374808683 SD 810910022 D 636083341 D 719767505 D 576713707 DB 327091245 SD 128393617 B 464665485 DB 186653465 S 50744850 BS 31...
output:
49922035989330 49921636770968 49921944461352 49922449756073 49922666981649 49922155391929 49922220626762 49922165472452 49922033364853 49922182879778 49922118499498 49921629498341 49921194947559 49921237943096 49920830551816 49920785993225 49921523763744 49920936362665 49920399195989 49920353383077 ...
result:
ok 100000 numbers
Test #6:
score: 0
Accepted
time: 155ms
memory: 11820kb
input:
100000 S 46980313 DS 746577279 S 119614887 D 32418943 B 952739459 S 532231646 SD 559263381 DS 631559122 SB 335561329 SD 935559531 DB 548708848 BD 8298741 DS 403723074 DS 559038896 SB 43327419 SD 430897629 B 483781810 B 31916773 B 39977980 S 405078517 D 323989135 SD 584417860 SB 776661769 D 467791168...
output:
42348275359402 42348652439619 42348713198459 42348631107452 42349074844557 42349760441910 42349962186466 42350429498431 42350447771721 42350361082730 42349972717124 42350266522340 42350463555914 42351167696055 42350739802238 42350725554192 42351107085086 42350772822134 42349881535618 42350109052615 ...
result:
ok 100000 numbers
Test #7:
score: 0
Accepted
time: 143ms
memory: 11776kb
input:
100000 BS 213295369 B 455710761 SB 373454236 DB 673322458 S 651168441 BS 359903245 BD 751934633 SD 632609134 S 358152611 S 160649972 D 146822438 B 754830402 B 385092410 B 851559764 DS 481485147 B 224375164 D 961859623 DB 985459185 B 582943091 B 316407251 DS 305843239 DS 723438991 S 53429344 B 523111...
output:
45600208273121 45600317533935 45600175773836 45600173792927 45599452402298 45599812001804 45599878168987 45600637494399 45600782960729 45601107349004 45601024544203 45600077092341 45600360724694 45600356341282 45600663553626 45600478170427 45601258145258 45601572720352 45601860925268 45602282587440 ...
result:
ok 100000 numbers
Test #8:
score: 0
Accepted
time: 146ms
memory: 11884kb
input:
100000 S 716049090 D 833450560 SD 670462747 SB 446815258 B 384907056 D 984726104 SB 462243694 D 922590298 BD 759638240 DS 19626890 SB 248370274 SD 668142001 D 335754916 B 726719900 BD 453285618 D 322601083 D 748915428 DB 977946001 BD 918781134 SB 548154938 S 732129575 B 165403934 DB 307460261 B 5705...
output:
49045162855443 49045050545344 49045590587244 49046369263442 49046304995206 49045800881106 49045291887266 49045217335835 49044870222977 49044225198944 49044835834249 49045020093554 49045243504559 49045344873512 49045291814515 49044883632804 49044186683347 49043700349817 49044284292286 49044627186893 ...
result:
ok 100000 numbers
Test #9:
score: 0
Accepted
time: 126ms
memory: 11876kb
input:
100000 D 960395655 B 122062291 SB 943474832 S 570975390 B 123731786 S 774351291 SD 856577683 DS 198978387 BS 934036917 BS 91010215 DS 387466221 BD 12179611 BS 860542232 BD 330196269 SB 26230686 S 732137135 D 536823278 DS 596330655 D 526094623 S 676662638 BD 894521450 SD 208119759 S 825586140 DS 7300...
output:
50012421513787 50012188224437 50012089226755 50012449040900 50012737290301 50012412928158 50012451727620 50013117114082 50013616855009 50013660180722 50013565703915 50013578958010 50013544230467 50013431019751 50013791549050 50013557409907 50013800945077 50013305887273 50013458257335 50013127389538 ...
result:
ok 100000 numbers
Test #10:
score: 0
Accepted
time: 147ms
memory: 11692kb
input:
100000 BD 167885928 B 410609125 B 867926765 D 25698987 B 964971589 DSB 761993255 D 716924891 SDB 449179974 D 655788083 DSB 251063578 BSD 636094691 SBD 269449771 D 416812799 S 196094133 BDS 899848895 BSD 201208478 SDB 654682908 S 210099670 S 459258687 SD 787381819 SDB 75643134 B 794516075 B 341054234...
output:
44681215929094 44681140738264 44680930941960 44681518144147 44682382390432 44682221858538 44682184620437 44682238048343 44681980767149 44682265890653 44682001502128 44682027275138 44682237188441 44682302542078 44682286644950 44681643705300 44681615590582 44681497821291 44681221388134 44682128554988 ...
result:
ok 100000 numbers
Test #11:
score: 0
Accepted
time: 157ms
memory: 11696kb
input:
100000 BDS 896623632 S 727737495 S 575894623 DB 87537832 S 392667603 S 454633578 B 848685103 BS 871609322 B 934539797 D 721419925 BDS 402351750 S 154060393 DB 8064179 S 323796100 DBS 478313825 B 576680349 DSB 326542444 S 847087723 BD 316375670 D 676173497 D 206424750 BDS 891334275 DB 32418913 SD 574...
output:
46778674719333 46778848243922 46778957655091 46778937757904 46778899686335 46778941204115 46779048062288 46779205742495 46779469558777 46779396882706 46778679387011 46778246708121 46777492984199 46777042157595 46777151909181 46777537135258 46777670986261 46777789945939 46778245232217 46777814046064 ...
result:
ok 100000 numbers
Test #12:
score: 0
Accepted
time: 144ms
memory: 11756kb
input:
100000 B 209787110 S 743547852 BDS 632112547 DSB 835672184 SBD 542035029 SDB 679878940 D 799107065 DB 96949934 B 381373295 S 894375953 SB 523946265 DBS 25024985 D 24381368 D 542488317 DB 888440956 SD 737136220 SD 646535540 DS 692254809 DSB 688491183 DS 202691109 DSB 615672839 B 975992261 DB 76178577...
output:
42579864423434 42580017947180 42580061595055 42581027647286 42581235297075 42581252060401 42580753810484 42580508092543 42581187959009 42581255726469 42581819067734 42581643117279 42581732924457 42582183780563 42582064698786 42582707711867 42582376025312 42582433674019 42582377573748 42582076215383 ...
result:
ok 100000 numbers
Test #13:
score: -100
Wrong Answer
time: 120ms
memory: 11828kb
input:
100000 DB 1 D 2 DSB 3 S 4 DSB 5 D 6 S 7 D 8 D 9 DS 10 SBD 11 BS 12 DSB 13 S 14 D 15 SBD 16 BDS 17 DS 18 SDB 19 BS 20 S 21 S 22 B 23 SBD 24 BD 25 BDS 26 D 27 DSB 28 BS 29 BS 30 B 31 B 32 S 33 B 34 D 35 DB 36 SB 37 BD 38 D 39 DB 40 S 41 DB 42 SB 43 BDS 44 B 45 SBD 46 DBS 47 B 48 DSB 49 DBS 50 DSB 51 D...
output:
4474057839 4474157836 4474257831 4474357824 4474457815 4474557804 4474657791 4474757776 4474857759 4474957740 4475057719 4475157696 4475257671 4475357644 4475457615 4475557584 4475657551 4475757516 4475857479 4475957440 4476057399 4476157356 4476239587 4476339540 4476439491 4476539440 4476639387 447...
result:
wrong answer 87257th numbers differ - expected: '5572397858', found: '5572397863'