QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#424834 | #8711. Tiles | Matutino | 24 | 319ms | 27892kb | C++14 | 3.4kb | 2024-05-29 18:26:32 | 2024-05-29 18:26:32 |
Judging History
answer
#include<bits/stdc++.h>
// #define int long long
#define reg register
inline int read(){
int k=1,x=0;char ch=getchar();
while (ch<'0'||ch>'9') {if (ch=='-') k=-1; ch=getchar();}
while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-48,ch=getchar();
return k*x;
}
const int N=5e5+10,INF=1e18;
int n,m,mx,my,bx[N],by[N],ans;
struct Node{int x,y;}p[N];
std::vector<std::pair<int,int>> vc[N];
int vis[N],cnt[2];
std::set<int> s;
inline int val(reg int x){return vis[*s.lower_bound(x)];}
inline bool chk(reg int x,reg int i){return val(x)==i;}
signed main(){
n=read(),m=read();
for (reg int i=1;i<=n;i++) bx[++mx]=p[i].x=read(),by[++my]=p[i].y=read();
std::sort(bx+1,bx+mx+1),std::sort(by+1,by+my+1);
mx=std::unique(bx+1,bx+mx+1)-bx-1,my=std::unique(by+1,by+my+1)-by-1;
for (reg int i=1;i<=n;i++){
p[i].x=std::lower_bound(bx+1,bx+mx+1,p[i].x)-bx;
p[i].y=std::lower_bound(by+1,by+my+1,p[i].y)-by;
}
p[n+1]=p[1];
for (reg int i=1;i<=n;i++) if (p[i].x==p[i+1].x)
vc[p[i].x].push_back({std::min(p[i].y,p[i+1].y),std::max(p[i].y,p[i+1].y)});
memset(vis,-1,sizeof(vis));
for (reg int i=1;i<=mx;i++){
std::vector<std::pair<int,int>> vec;
std::sort(vc[i].begin(),vc[i].end());
for (auto [l,r]:vc[i])
if (vec.empty()||vec.back().second!=l) vec.push_back({l,r});
else vec.back().second=r;
vc[i]=vec;
}
by[0]=-1,by[my+1]=2e9,s.insert(0),s.insert(my+1);
for (reg int i=1;i<=mx;i++){
reg int len=0,flg=0;
std::cerr<<"ans "<<cnt[0]<<" "<<cnt[1]<<"\n";
if (!cnt[0]||!cnt[1]){
if (cnt[0]) ans=bx[i]&1?bx[i]-1:bx[i];
if (cnt[1]) ans=bx[i]&1?bx[i]:bx[i]-1;
}
for (auto [l,r]:vc[i]){
for (auto it:s) std::cerr<<by[it]<<" "; std::cerr<<"\n";
// std::cerr<<by[l]<<" "<<by[r]<<"\n";
// std::cerr<<by[l]<<" "<<vis[l]<<"\n";
reg int ty=val(r)>-1;
auto L=s.upper_bound(l),R=s.upper_bound(r);
// std::cerr<<"<< "<<by[*L]<<" "<<by[*R]<<"\n";
if (ty){
for (auto it=L;it!=R;++it) if ((bx[i]&1)!=vis[*it]){flg=1;break;}
auto R_=R; --R_; if (*R_!=r&&(bx[i]&1)!=vis[*R]){flg=1;break;}
}
if (by[r]-by[l]&1){
// std::cerr<<"<< "<<vis[*s.lower_bound(l)]<<" "<<(bx[i]&1)<<"\n";
if (!chk(l,bx[i]&1)&&!chk(r+1,bx[i]&1)){flg=1;break;}
}
// std::cerr<<"last "<<vis[l]<<"\n";
if (L!=R) vis[l]=vis[*L];
for (auto it=L;it!=R;++it){
if (ty) cnt[vis[*it]]--;
vis[*it]=ty?-1:bx[i]&1;
}
// std::cerr<<"<< "<<vis[l]<<" "<<l<<" "<<r<<"\n";
s.erase(L,R);
if (vis[*R]!=(ty?-1:bx[i]&1)){
// std::cerr<<"appear\n";
vis[r]=(ty?-1:bx[i]&1),s.insert(r);
if (vis[r]>-1) cnt[vis[r]]++;
}
if (vis[l]!=val(r)) vis[l]>-1?cnt[vis[l]]++:0,s.insert(l);
else vis[l]>-1?cnt[vis[l]]--:0,s.erase(l);
}
if (flg) break;
// for (auto it:s) std::cerr<<vis[it]<<" "; std::cerr<<"\n";
// std::cerr<<"qwq\n";
for (auto [l,r]:vc[i]){
auto it=s.lower_bound(l),_it=it; --_it;
if (vis[*it]!=-1&&(by[*it]-by[*_it]&1)){flg=1;break;}
_it=it,++_it; if (vis[*_it]!=-1&&(by[*_it]-by[*it]&1)){flg=1;break;}
// std::cerr<<"<< "<<*it<<" "<<*_it<<"\n";
it=s.lower_bound(r); _it=it,--_it;
if (vis[*it]!=-1&&(by[*it]-by[*_it]&1)){flg=1;break;}
_it=it,++_it; if (vis[*_it]!=-1&&(by[*_it]-by[*it]&1)){flg=1;break;}
// std::cerr<<"<< "<<*it<<" "<<*_it<<"\n";
}
if (flg) break;
// std::cerr<<"right "<<i<<"\n";
}
printf("%d\n",ans);
return 0;
}
详细
Subtask #1:
score: 4
Accepted
Test #1:
score: 4
Accepted
time: 2ms
memory: 21140kb
input:
4 3 0 0 0 3 3 3 3 0
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 5ms
memory: 22504kb
input:
4 999999999 999999999 0 999999999 1000000000 0 1000000000 0 0
output:
999999998
result:
ok single line: '999999998'
Test #3:
score: 0
Accepted
time: 0ms
memory: 23108kb
input:
4 875 875 0 0 0 0 284 875 284
output:
874
result:
ok single line: '874'
Test #4:
score: 0
Accepted
time: 4ms
memory: 22628kb
input:
4 317 317 0 317 920 0 920 0 0
output:
316
result:
ok single line: '316'
Test #5:
score: 0
Accepted
time: 4ms
memory: 23868kb
input:
4 912 912 814 912 0 0 0 0 814
output:
912
result:
ok single line: '912'
Test #6:
score: 0
Accepted
time: 2ms
memory: 23092kb
input:
4 2 0 0 0 1 2 1 2 0
output:
0
result:
ok single line: '0'
Test #7:
score: 0
Accepted
time: 2ms
memory: 21596kb
input:
4 1 0 0 0 1 1 1 1 0
output:
0
result:
ok single line: '0'
Test #8:
score: 0
Accepted
time: 2ms
memory: 22436kb
input:
4 412 412 998 0 998 0 17 412 17
output:
0
result:
ok single line: '0'
Test #9:
score: 0
Accepted
time: 4ms
memory: 21616kb
input:
4 87523458 87523458 42385699 0 42385699 0 23498231 87523458 23498231
output:
87523458
result:
ok single line: '87523458'
Test #10:
score: 0
Accepted
time: 4ms
memory: 23488kb
input:
4 1 0 0 0 1000000000 1 1000000000 1 0
output:
0
result:
ok single line: '0'
Test #11:
score: 0
Accepted
time: 0ms
memory: 23104kb
input:
4 1000000000 1000000000 0 1000000000 1000000000 0 1000000000 0 0
output:
1000000000
result:
ok single line: '1000000000'
Subtask #2:
score: 9
Accepted
Dependency #1:
100%
Accepted
Test #12:
score: 9
Accepted
time: 0ms
memory: 23540kb
input:
5 29034873 29034873 13721 0 13721 0 99198237 29034870 99198237 29034873 99198237
output:
29034872
result:
ok single line: '29034872'
Test #13:
score: 0
Accepted
time: 0ms
memory: 21316kb
input:
6 999999993 2934870 21349 2934870 3423847 0 3423847 0 91827393 999999993 91827393 999999993 21349
output:
999999992
result:
ok single line: '999999992'
Test #14:
score: 0
Accepted
time: 0ms
memory: 23432kb
input:
6 401 153 409 153 751 0 751 0 909 401 909 401 409
output:
152
result:
ok single line: '152'
Test #15:
score: 0
Accepted
time: 0ms
memory: 23208kb
input:
5 726 0 286 0 315 726 315 726 122 0 122
output:
0
result:
ok single line: '0'
Test #16:
score: 0
Accepted
time: 0ms
memory: 23408kb
input:
6 999 616 129 616 311 0 311 0 529 999 529 999 129
output:
998
result:
ok single line: '998'
Test #17:
score: 0
Accepted
time: 0ms
memory: 22656kb
input:
6 3 0 0 0 4 3 4 3 2 2 2 2 0
output:
2
result:
ok single line: '2'
Test #18:
score: 0
Accepted
time: 4ms
memory: 22636kb
input:
6 3 0 0 0 2 1 2 1 3 3 3 3 0
output:
0
result:
ok single line: '0'
Test #19:
score: 0
Accepted
time: 0ms
memory: 22508kb
input:
6 717 204 1000 0 1000 0 306 548 306 717 306 717 1000
output:
716
result:
ok single line: '716'
Test #20:
score: 0
Accepted
time: 0ms
memory: 23496kb
input:
6 804 785 17 785 665 0 665 0 969 804 969 804 17
output:
784
result:
ok single line: '784'
Test #21:
score: 0
Accepted
time: 0ms
memory: 22584kb
input:
6 973 973 772 973 122 42 122 42 6 0 6 0 772
output:
972
result:
ok single line: '972'
Test #22:
score: 0
Accepted
time: 0ms
memory: 23020kb
input:
6 615 492 993 492 748 615 748 615 311 0 311 0 993
output:
492
result:
ok single line: '492'
Test #23:
score: 0
Accepted
time: 2ms
memory: 21572kb
input:
6 999 999 424 999 302 83 302 83 70 0 70 0 424
output:
82
result:
ok single line: '82'
Test #24:
score: 0
Accepted
time: 0ms
memory: 22988kb
input:
6 884 884 622 884 317 228 317 228 96 0 96 0 622
output:
228
result:
ok single line: '228'
Test #25:
score: 0
Accepted
time: 5ms
memory: 23428kb
input:
6 6 0 6 3 6 3 4 6 4 6 0 0 0
output:
2
result:
ok single line: '2'
Test #26:
score: 0
Accepted
time: 2ms
memory: 22360kb
input:
6 6 0 4 5 4 5 2 6 2 6 0 0 0
output:
4
result:
ok single line: '4'
Test #27:
score: 0
Accepted
time: 4ms
memory: 23384kb
input:
6 6 0 6 2 6 2 4 6 4 6 0 0 0
output:
6
result:
ok single line: '6'
Test #28:
score: 0
Accepted
time: 0ms
memory: 21428kb
input:
6 6 0 6 1 6 1 4 6 4 6 0 0 0
output:
0
result:
ok single line: '0'
Test #29:
score: 0
Accepted
time: 0ms
memory: 22516kb
input:
6 802 0 60 802 60 802 604 288 604 288 271 0 271
output:
0
result:
ok single line: '0'
Test #30:
score: 0
Accepted
time: 5ms
memory: 21312kb
input:
5 318 0 782 318 782 318 256 318 148 0 148
output:
318
result:
ok single line: '318'
Test #31:
score: 0
Accepted
time: 0ms
memory: 22884kb
input:
6 994 994 511 994 76 0 76 0 135 0 782 994 782
output:
994
result:
ok single line: '994'
Subtask #3:
score: 11
Accepted
Test #32:
score: 11
Accepted
time: 0ms
memory: 23484kb
input:
1551 1000 0 988 2 988 3 988 6 988 6 985 6 982 6 981 6 979 6 978 6 977 6 976 6 975 6 974 6 972 6 970 6 969 6 968 6 966 6 965 6 964 7 964 8 964 8 963 8 961 8 960 10 960 11 960 13 960 16 960 16 959 16 958 16 957 16 954 16 953 16 951 16 950 17 950 18 950 18 948 18 946 18 945 18 944 18 942 18 941 18 939 ...
output:
164
result:
ok single line: '164'
Test #33:
score: 0
Accepted
time: 16ms
memory: 24120kb
input:
36221 1000000000 0 996776952 43916 996776952 43916 996301596 102050 996301596 102050 995243908 173144 995243908 173144 992639626 184542 992639626 184542 987461238 192474 987461238 192474 982703402 406098 982703402 406098 980100986 525272 980100986 525272 978443232 532708 978443232 532708 977775310 6...
output:
14903120
result:
ok single line: '14903120'
Test #34:
score: 0
Accepted
time: 279ms
memory: 27440kb
input:
193828 1000000000 0 999998938 7028 999998938 7028 999997962 20232 999997962 20232 999997052 23456 999997052 23456 999996854 30820 999996854 30820 999996798 53224 999996798 53224 999996114 55112 999996114 55112 999995972 57148 999995972 57148 999995732 59864 999995732 59864 999995618 64052 999995618 ...
output:
847705586
result:
ok single line: '847705586'
Test #35:
score: 0
Accepted
time: 132ms
memory: 25704kb
input:
100000 999981518 0 999980992 50540 999980992 50540 999973058 73428 999973058 73428 999952350 116804 999952350 116804 999950006 133616 999950006 133616 999940658 150202 999940658 150202 999931756 158656 999931756 158656 999921792 182938 999921792 182938 999899902 224480 999899902 224480 999898440 226...
output:
999981518
result:
ok single line: '999981518'
Test #36:
score: 0
Accepted
time: 91ms
memory: 24848kb
input:
100000 999999946 0 999984618 10462 999984618 10462 999958906 60800 999958906 60800 999953668 65892 999953668 65892 999947392 70334 999947392 70334 999928772 87646 999928772 87646 999863608 117006 999863608 117006 999834378 182962 999834378 182962 999819462 202864 999819462 202864 999812430 204350 99...
output:
676608028
result:
ok single line: '676608028'
Test #37:
score: 0
Accepted
time: 6ms
memory: 21160kb
input:
502 993 0 1000 2 1000 2 996 4 996 4 992 6 992 6 988 8 988 8 984 10 984 10 980 12 980 12 976 14 976 14 972 16 972 16 968 18 968 18 964 20 964 20 960 22 960 22 956 24 956 24 952 26 952 26 948 28 948 28 944 30 944 30 940 32 940 32 936 34 936 34 932 36 932 36 928 38 928 38 924 40 924 40 920 42 920 42 91...
output:
992
result:
ok single line: '992'
Test #38:
score: 0
Accepted
time: 0ms
memory: 22484kb
input:
1080 994 0 990 2 990 4 990 8 990 8 989 8 988 8 987 8 986 10 986 12 986 14 986 20 986 20 985 20 983 20 982 20 979 20 978 20 976 20 975 20 974 20 973 20 968 22 968 26 968 28 968 28 967 28 965 28 963 28 962 28 956 28 955 28 950 28 949 28 947 28 945 28 944 28 943 28 942 28 941 28 940 28 939 28 938 28 93...
output:
572
result:
ok single line: '572'
Test #39:
score: 0
Accepted
time: 167ms
memory: 27176kb
input:
200000 999999996 0 999999712 11680 999999712 11680 999998638 16884 999998638 16884 999992598 25560 999992598 25560 999986560 27916 999986560 27916 999980634 34720 999980634 34720 999978576 44572 999978576 44572 999968226 49332 999968226 49332 999941322 62120 999941322 62120 999937962 92112 999937962...
output:
479112624
result:
ok single line: '479112624'
Test #40:
score: 0
Accepted
time: 156ms
memory: 24612kb
input:
114867 183430402 0 1000000000 3192 1000000000 3192 999982590 6384 999982590 6384 999965180 9576 999965180 9576 999947770 12768 999947770 12768 999930360 15960 999930360 15960 999912950 19152 999912950 19152 999895540 22344 999895540 22344 999878130 25536 999878130 25536 999860720 28728 999860720 287...
output:
183430402
result:
ok single line: '183430402'
Test #41:
score: 0
Accepted
time: 48ms
memory: 27892kb
input:
200000 999999999 0 998179020 20114 998179020 20114 998131016 56540 998131016 56540 998028168 57786 998028168 57786 997952316 58860 997952316 58860 997891040 68802 997891040 68802 997877196 94486 997877196 94486 997832208 110000 997832208 110000 997641760 117346 997641760 117346 997520396 118582 9975...
output:
6933364
result:
ok single line: '6933364'
Test #42:
score: 0
Accepted
time: 148ms
memory: 25036kb
input:
90448 279993337 0 1000000000 6190 1000000000 6190 999977888 12380 999977888 12380 999955776 18570 999955776 18570 999933664 24760 999933664 24760 999911552 30950 999911552 30950 999889440 37140 999889440 37140 999867328 43330 999867328 43330 999845216 49520 999845216 49520 999823104 55710 999823104 ...
output:
279993336
result:
ok single line: '279993336'
Test #43:
score: 0
Accepted
time: 5ms
memory: 23424kb
input:
16 1000000000 0 1000000000 82734 1000000000 98347 1000000000 102982 1000000000 102982 293874957 102982 234875948 102982 102938556 355111 102938556 12836323 102938556 19238732 102938556 349587239 102938556 1000000000 102938556 1000000000 1928733 1000000000 283746 1000000000 0 0 0
output:
1000000000
result:
ok single line: '1000000000'
Test #44:
score: 0
Accepted
time: 319ms
memory: 27324kb
input:
199999 1000000000 0 999996612 3392 999996612 3392 999996606 15294 999996606 15294 999993550 20716 999993550 20716 999992154 35680 999992154 35680 999985500 38506 999985500 38506 999983338 46448 999983338 46448 999976708 47598 999976708 47598 999976696 48928 999976696 48928 999965882 49490 999965882 ...
output:
1000000000
result:
ok single line: '1000000000'
Subtask #4:
score: 0
Wrong Answer
Test #45:
score: 19
Accepted
time: 0ms
memory: 22316kb
input:
14 6 0 1 0 3 2 3 2 4 0 4 0 6 3 6 3 7 4 7 6 7 6 5 3 5 3 2 3 1
output:
2
result:
ok single line: '2'
Test #46:
score: 0
Accepted
time: 5ms
memory: 22340kb
input:
18 9 0 2 2 2 2 1 4 1 4 0 9 0 9 2 4 2 4 4 7 4 7 3 9 3 9 6 4 6 4 5 2 5 2 4 0 4
output:
6
result:
ok single line: '6'
Test #47:
score: 0
Accepted
time: 27ms
memory: 25052kb
input:
199996 966 752 702 754 702 754 700 756 700 756 702 758 702 758 700 760 700 760 702 762 702 762 700 764 700 764 702 766 702 766 700 768 700 768 702 770 702 770 700 772 700 772 702 774 702 774 700 776 700 776 702 778 702 778 700 780 700 780 702 782 702 782 700 784 700 784 702 786 702 786 700 788 700 7...
output:
0
result:
ok single line: '0'
Test #48:
score: -19
Wrong Answer
time: 87ms
memory: 25944kb
input:
199996 966 748 702 750 702 750 700 752 700 752 702 754 702 754 700 756 700 756 702 758 702 758 700 760 700 760 702 762 702 762 700 764 700 764 702 766 702 766 700 768 700 768 702 770 702 770 700 772 700 772 702 774 702 774 700 776 700 776 702 778 702 778 700 780 700 780 702 782 702 782 700 784 700 7...
output:
6
result:
wrong answer 1st lines differ - expected: '962', found: '6'
Subtask #5:
score: 0
Time Limit Exceeded
Test #89:
score: 22
Accepted
time: 27ms
memory: 22620kb
input:
199996 198506138 31225688 248200160 31225688 248291950 28995282 248291950 28995282 248200160 26764876 248200160 26764876 248291950 24534470 248291950 24534470 248200160 22304064 248200160 22304064 248291950 20073658 248291950 20073658 248200160 17843252 248200160 17843252 248291950 15612846 24829195...
output:
0
result:
ok single line: '0'
Test #90:
score: 0
Accepted
time: 36ms
memory: 25404kb
input:
199996 740789144 48843244 341844840 48843244 342042210 40702704 342042210 40702704 341844840 32562164 341844840 32562164 342042210 24421624 342042210 24421624 341844840 16281084 341844840 16281084 342042210 8140544 342042210 8140544 341450100 16281084 341450100 16281084 341647470 24421624 341647470 ...
output:
0
result:
ok single line: '0'
Test #91:
score: -22
Time Limit Exceeded
input:
199996 198506138 31225684 248200166 31225684 248291956 28995278 248291956 28995278 248200166 26764872 248200166 26764872 248291956 24534466 248291956 24534466 248200166 22304060 248200166 22304060 248291956 20073654 248291956 20073654 248200166 17843248 248200166 17843248 248291956 15612842 24829195...
output:
result:
Subtask #6:
score: 0
Time Limit Exceeded
Test #118:
score: 25
Accepted
time: 40ms
memory: 26184kb
input:
200000 1000000000 1000000000 0 999990876 0 999990876 38 999972524 38 999972524 1510 999969180 1510 999969180 3734 999964780 3734 999964780 4138 999960464 4138 999960464 11052 999953728 11052 999953728 24478 999914972 24478 999914972 25892 999909864 25892 999909864 28102 999902920 28102 999902920 301...
output:
40502
result:
ok single line: '40502'
Test #119:
score: -25
Time Limit Exceeded
input:
200000 778696306 22822858 87970191 330038016 87970191 330038016 87957657 259262362 87957657 259262362 87923225 316313936 87923225 316313936 87896643 155653960 87896643 155653960 87890367 184851800 87890367 184851800 87877609 93595576 87877609 93595576 87838069 384366344 87838069 384366344 87822439 3...
output:
result:
Subtask #7:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
100%
Accepted
Dependency #4:
0%