QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#424834#8711. TilesMatutino24 319ms27892kbC++143.4kb2024-05-29 18:26:322024-05-29 18:26:32

Judging History

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

  • [2024-05-29 18:26:32]
  • 评测
  • 测评结果:24
  • 用时:319ms
  • 内存:27892kb
  • [2024-05-29 18:26:32]
  • 提交

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;
}

Details

Tip: Click on the bar to expand more detailed information

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%