QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#111274 | #1878. No Rest for the Wicked | Kostlin | WA | 643ms | 63916kb | C++14 | 3.2kb | 2023-06-06 16:14:37 | 2023-06-06 16:14:40 |
Judging History
answer
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <assert.h>
using namespace std;
#define fi first
#define sc second
#define mkp make_pair
#define pii pair<int,int>
typedef long long ll;
const int N=2e5+5,oo=1e9,mod=1e9+7;
inline int read() {
int x=0,flag=0;char ch=getchar();
while(ch<'0'||ch>'9') {flag|=(ch=='-');ch=getchar();}
while('0'<=ch&&ch<='9') {x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}
return flag?-x:x;
}
inline int mx(int x,int y) {return x>y?x:y;}
inline int mn(int x,int y) {return x<y?x:y;}
inline void swp(int &x,int &y) {x^=y^=x^=y;}
inline int as(int x) {return x>0?x:-x;}
inline void ckmin(int&x,int y) {x=mn(x,y);}
ll qwq;
int n,m;
struct Node {
int id,c,t,s;
bool operator <(const Node &w) {
return c<w.c;
}
}a[N];
inline int ef(int V) {
int l=1,r=n,mid;
while(l<=r) {
mid=(l+r)>>1;
if(a[mid].c<=V) l=mid+1;
else r=mid-1;
}
return r;
}
vector<int> T[N],H[N<<2];
inline void adde(int x,int y) {T[x].push_back(y);}
void Update(int l,int r,int ht,int x,int y,int id) {
if(x<=l&&r<=y) {H[ht].push_back(id);return ;}
int mid=(l+r)>>1;
if(x<=mid) Update(l,mid,ht<<1,x,y,id);
if(y> mid) Update(mid+1,r,ht<<1|1,x,y,id);
}
pair<pii,int> st[N];int top,f[N],sz[N],val[N],tag[N],ans[N]; bool vis[N];
int ff(int x) {return x==f[x]?x:ff(f[x]);}
inline void merge(int x,int y) {
int fx=ff(x),fy=ff(y);
if(fx==fy) return ;
if(sz[fx]>sz[fy]) {
st[++top]=mkp(mkp(fx,fy),val[fx]);
f[fy]=fx; sz[fx]+=sz[fy]; val[fx]=mx(val[fx],mx(val[fy],tag[fy]));
} else {
st[++top]=mkp(mkp(fy,fx),val[fy]);
f[fx]=fy; sz[fy]+=sz[fx]; val[fy]=mx(val[fy],mx(val[fx],tag[fx]));
}
}
inline void del(int lst) {
while(top>lst) {
int u=st[top].fi.fi,v=st[top].fi.sc,s=st[top].sc;
sz[u]-=sz[v];val[u]=s; f[v]=v; tag[v]=mx(tag[v],tag[u]);
--top;
}
}
inline void push(int ht) {
for(int&x:H[ht]) {
vis[x]=1;
for(int&v:T[x])
if(vis[v]) merge(x,v);
}
}
void solve(int l,int r,int ht) {
int lst=top;
push(ht);
if(l==r) {
int x=a[l].id;
ans[x]=mx(a[l].s,tag[x]);
for(int&v:T[x])
if(vis[v]) qwq+=sz[v],ans[x]=mx(ans[x],mx(val[ff(v)],tag[ff(v)]));
for(int&v:T[x])
tag[ff(v)]=mx(tag[ff(v)],ans[x]);
for(int&x:H[ht]) vis[x]=0;
del(lst);
return ;
} int mid=(l+r)>>1;
solve(mid+1,r,ht<<1|1);
solve(l,mid,ht<<1);
for(int&x:H[ht]) vis[x]=0;
del(lst);
}
int main() {
n=read();m=read();
for(int i=1;i<=n;++i) a[i].c=read(),a[i].t=read(),a[i].s=read(),a[i].id=i;
int pre=a[n].c;
sort(a+1,a+n+1);
for(int i=1;i<=n;++i) a[i].c=i,a[i].t=ef(a[i].t);
for(int i=1,x,y;i<=m;++i) {
x=read();y=read();
adde(x,y);adde(y,x);
}
for(int i=1;i<=n;++i)
if(a[i].c<a[i].t) Update(1,n,1,a[i].c+1,a[i].t,a[i].id);
for(int i=1;i<=n;++i) f[i]=i,sz[i]=1,val[a[i].id]=a[i].s;
solve(1,n,1);
if(qwq>1000000) printf("%lld %d\n",qwq,pre);
// cerr<<qwq<<endl;
for(int i=1;i<=n;++i) printf("%d ",ans[i]);
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 7ms
memory: 26972kb
input:
4 3 2 3 1 1 1 4 1 2 2 1 1 3 1 2 1 3 1 4
output:
2 4 2 3
result:
ok 4 number(s): "2 4 2 3"
Test #2:
score: 0
Accepted
time: 11ms
memory: 27020kb
input:
1 0 138088047 507565360 682493255
output:
682493255
result:
ok 1 number(s): "682493255"
Test #3:
score: 0
Accepted
time: 4ms
memory: 26940kb
input:
4 4 1 4 3 2 4 2 2 4 3 3 4 4 1 2 1 3 2 3 3 4
output:
4 4 4 4
result:
ok 4 number(s): "4 4 4 4"
Test #4:
score: 0
Accepted
time: 11ms
memory: 27068kb
input:
4 6 178072496 839649317 45448733 194708659 935253395 946862151 18249835 428083054 205076387 264987407 972905801 813257839 1 2 1 3 1 4 2 3 2 4 3 4
output:
946862151 946862151 946862151 946862151
result:
ok 4 number(s): "946862151 946862151 946862151 946862151"
Test #5:
score: 0
Accepted
time: 8ms
memory: 27072kb
input:
6 9 28300078 870529222 753188708 536298772 594473950 960983978 529901549 892644015 629235196 243957096 964819865 557992404 816732311 926011948 125114736 542880646 854233712 893836623 1 4 1 6 2 3 2 5 2 6 3 4 3 5 4 5 5 6
output:
960983978 960983978 960983978 960983978 893836623 960983978
result:
ok 6 numbers
Test #6:
score: 0
Accepted
time: 8ms
memory: 27236kb
input:
8 12 145668143 803690704 831047661 521729328 779388601 536431978 431184019 964406648 502003747 576412706 849278976 294536686 192427822 686389291 757517237 233074855 931142020 210401181 471103022 766254684 616437478 428586523 540241082 342381939 1 2 1 3 1 4 1 6 1 7 1 8 2 4 2 6 2 8 3 4 4 6 4 7
output:
831047661 831047661 831047661 831047661 757517237 831047661 831047661 831047661
result:
ok 8 numbers
Test #7:
score: 0
Accepted
time: 0ms
memory: 27068kb
input:
10 15 655656582 957993326 217780522 363058173 566585702 743894263 647838538 859340013 196392035 640149142 953472346 198526606 702268047 718140369 962437830 124896500 917182037 295362562 192263727 942734873 850558512 772259555 981713859 93132130 238923474 989797499 19116545 409753844 743389814 382909...
output:
962437830 962437830 962437830 962437830 962437830 295362562 962437830 93132130 962437830 962437830
result:
ok 10 numbers
Test #8:
score: 0
Accepted
time: 262ms
memory: 54872kb
input:
200000 0 502890149 961474984 684355115 618086103 863569344 434733367 727711900 778917401 449199413 8011174 379179141 725890925 16795793 212474180 91233201 61041710 591880437 771789122 355201933 882765325 383668478 373739996 969001869 183781175 129261352 519815461 474556248 429116592 640858017 982574...
output:
684355115 434733367 449199413 725890925 91233201 771789122 383668478 183781175 474556248 982574287 109783216 367982401 479081650 344433184 613639949 572319457 77913195 538793070 88264426 986349435 648825997 904978549 91971034 949673971 367631282 322547831 867048248 787073323 415650496 193731725 6270...
result:
ok 200000 numbers
Test #9:
score: 0
Accepted
time: 127ms
memory: 35996kb
input:
50000 100000 631923742 927638850 939027944 422118774 472623964 360940542 544501667 748795023 796768185 805611366 815713744 938768947 222601144 475048694 663730623 468473535 638903288 368277564 488325252 551840773 890693442 115749645 775910896 250388190 559998274 589294310 815047287 601668630 9808861...
output:
939027944 999960592 999960592 938768947 999997749 999988627 999988627 999997749 999939508 999921872 999997749 999997749 937233019 999997749 999997749 999997749 999939508 999997749 730368989 999921872 999997749 999997749 828135260 999921872 999997749 999997749 999997749 999921872 286117326 999997749 ...
result:
ok 50000 numbers
Test #10:
score: 0
Accepted
time: 198ms
memory: 44060kb
input:
100000 100000 184543436 222811926 816885764 55222359 760564417 169876582 655570806 807057528 470739184 833844100 975332008 183927725 11671238 153078424 493864779 127290865 784589947 821780780 70448873 330138563 93479481 12254831 406444687 804951855 498077254 693430372 128634817 265058541 289042155 5...
output:
816885764 999960277 994659218 996437481 997796904 999960277 999958145 804951855 985010486 982209114 999832947 999958145 999960277 999960277 999960277 719689691 902217476 914618819 260518915 999960277 998242108 200428672 999318337 913540586 972352542 999960277 999960277 698193885 272542631 999960277 ...
result:
ok 100000 numbers
Test #11:
score: 0
Accepted
time: 193ms
memory: 44504kb
input:
100000 99999 821982023 824662695 665562077 402615956 459501962 858242180 153852030 886072223 390076775 410528432 937651870 144603393 691579910 695714065 214139743 105071995 493059469 160856987 42572234 181966886 811074254 927710468 967595955 749910982 551428938 772318913 891713018 321498417 66389630...
output:
665562077 891472507 894793852 701733807 975643100 844092874 995356364 749910982 891713018 517086574 965606847 985083440 914862158 969347435 973793233 892673172 998291472 958566771 951096972 991586543 981813613 984944223 989685936 930742654 987242097 972154967 983222534 989493331 775234101 833426457 ...
result:
ok 100000 numbers
Test #12:
score: 0
Accepted
time: 166ms
memory: 44932kb
input:
100000 99999 171026137 628580679 369012176 440107852 782037898 115880441 561894891 606938071 411702474 205468508 207935987 75776417 457722710 524511025 552401971 301819785 450400665 100873131 559157362 732635991 424568355 705008086 876789369 90486462 709529633 863158084 819796863 534867239 950209545...
output:
999998748 999998748 999997778 999998748 999998748 999998748 999997778 90486462 819796863 999997778 999997778 999998748 999998748 999998748 999998748 999998748 999998748 999998748 999998748 999998748 999997778 892354831 999998748 999998748 999998748 999998748 848296347 999997778 999998748 999998748 9...
result:
ok 100000 numbers
Test #13:
score: 0
Accepted
time: 317ms
memory: 45068kb
input:
100000 200000 214793606 448862950 419567295 156918443 274940666 113830386 132588873 469005276 996242407 176404246 186174828 961767921 190909983 989216204 166824770 208486000 768449998 354867561 29311941 690819521 299973676 458996272 832356751 95326787 231617767 886306317 758443841 293872969 62382527...
output:
999991453 999991453 999981737 999991453 999991453 999991453 999991453 999981737 999981737 999991453 999981737 847073675 944276727 999991453 999991453 999991453 438348062 999981737 999991453 999981737 999991453 999981737 999981737 999991453 999981737 999981737 999981737 999991453 999981737 999972725 ...
result:
ok 100000 numbers
Test #14:
score: 0
Accepted
time: 643ms
memory: 61900kb
input:
200000 200000 656533099 689810438 556906910 341746139 534812884 137650710 729122353 844106862 452701789 258824697 390395251 423487149 184004218 374640896 540894254 414889583 725207839 398806106 126985654 533843299 479102526 143604993 844863879 737981958 505968068 913039653 727246700 300250228 793833...
output:
556906910 999997589 917342802 999997589 999800035 859238361 994454116 999997589 884065046 983675831 999997589 991739917 349318532 999997589 999997589 384700992 999997589 995448121 999997589 574253964 6045973 998355615 989146429 646693323 322811223 781603754 451092787 999538461 851460054 999997589 78...
result:
ok 200000 numbers
Test #15:
score: 0
Accepted
time: 532ms
memory: 62616kb
input:
200000 199999 669518394 814399566 309727938 819672035 873333290 398154558 180202950 715590712 429039459 191516992 667900360 152395336 45235650 320638403 248839032 320758533 837631937 233299599 37059380 229988541 770244347 793451610 980233485 359124733 642383109 772256101 464439980 29119559 499705299...
output:
309727938 960165460 947355995 975336195 860500825 941131431 931539964 359124733 464439980 805284388 978654244 334708254 917230685 909804209 981948638 996586978 959114944 995602007 948575404 980818723 916719963 691674212 914875419 990031691 515642790 976073634 172980709 796261073 973274038 928322906 ...
result:
ok 200000 numbers
Test #16:
score: 0
Accepted
time: 457ms
memory: 63916kb
input:
200000 199999 79226236 555679299 57136998 498976327 728414110 798546476 24649357 199504510 287356404 167891338 418665635 87018442 836205002 948537787 651173616 132711013 227652968 246827525 590334171 619305866 949260662 618965756 837130597 899234326 240940079 681461414 127291901 574769823 706171235 ...
output:
999994887 999988558 999994887 999994887 651173616 999994887 949260662 899234326 999988558 790026565 999988558 999994887 999994887 999988558 999994887 999988558 999994887 999988558 999994887 999994887 999988558 999988558 999994887 999988558 999994887 819778258 999994887 999994887 397648675 999988558 ...
result:
ok 200000 numbers
Test #17:
score: 0
Accepted
time: 254ms
memory: 54372kb
input:
200000 200000 1 400001 221214447 2 200002 757282450 3 200003 155179174 4 200004 786806927 5 200005 982831253 6 200006 567868640 7 200007 898770372 8 200008 509963148 9 200009 323150629 10 200010 238458824 11 200011 537853016 12 200012 701366543 13 200013 917635102 14 200014 252705183 15 200015 95832...
output:
999990030 999990030 999990030 999990030 999990030 999990030 898770372 950152734 999990030 999990030 999990030 701366543 999990030 999990030 999990030 999990030 999990030 999990030 999990030 999990030 999990030 999990030 999990030 560793853 999990030 999990030 999990030 999990030 999990030 999990030 ...
result:
ok 200000 numbers
Test #18:
score: 0
Accepted
time: 247ms
memory: 55416kb
input:
200000 199999 1 400001 287445787 2 200002 317455423 3 200003 711872163 4 200004 30826429 5 200005 603292232 6 200006 805193156 7 200007 548864825 8 200008 147355082 9 200009 235715939 10 200010 979122814 11 200011 417732916 12 200012 413778183 13 200013 285284142 14 200014 792835655 15 200015 700584...
output:
999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 999998200 ...
result:
ok 200000 numbers
Test #19:
score: -100
Wrong Answer
time: 128ms
memory: 55968kb
input:
200000 199999 1 400001 693548179 2 200002 165048846 3 200003 336329704 4 200004 220784118 5 200005 54556976 6 200006 130714392 7 200007 693640808 8 200008 741570122 9 200009 107602702 10 200010 800469009 11 200011 17174963 12 200012 595841174 13 200013 96976487 14 200014 412397668 15 200015 40163367...
output:
19999900000 200000 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 999998667 9...
result:
wrong answer 1st numbers differ - expected: '999998667', found: '19999900000'