QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#424811#8711. TilesMatutino4 364ms28136kbC++143.1kb2024-05-29 17:39:022024-05-29 17:39:03

Judging History

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

  • [2024-05-29 17:39:03]
  • 评测
  • 测评结果:4
  • 用时:364ms
  • 内存:28136kb
  • [2024-05-29 17:39:02]
  • 提交

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;
		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;} 
			}
			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)){
				vis[r]=(ty?-1:bx[i]&1),s.insert(r);
				if (vis[r]>-1) cnt[vis[r]]++;
			}
		// for (auto it:s) std::cerr<<by[it]<<" "; std::cerr<<"\n";

			if (vis[l]!=(ty?-1:bx[i]&1)) vis[l]>0?cnt[vis[l]]++:0,s.insert(l); else s.erase(l);
		}
		if (flg) break; 
		
		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;}
			
			// 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;}
		
			// 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: 22468kb

input:

4 3
0 0
0 3
3 3
3 0

output:

0

result:

ok single line: '0'

Test #2:

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

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: 22552kb

input:

4 875
875 0
0 0
0 284
875 284

output:

874

result:

ok single line: '874'

Test #4:

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

input:

4 317
317 0
317 920
0 920
0 0

output:

316

result:

ok single line: '316'

Test #5:

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

input:

4 912
912 814
912 0
0 0
0 814

output:

912

result:

ok single line: '912'

Test #6:

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

input:

4 2
0 0
0 1
2 1
2 0

output:

0

result:

ok single line: '0'

Test #7:

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

input:

4 1
0 0
0 1
1 1
1 0

output:

0

result:

ok single line: '0'

Test #8:

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

input:

4 412
412 998
0 998
0 17
412 17

output:

0

result:

ok single line: '0'

Test #9:

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

input:

4 87523458
87523458 42385699
0 42385699
0 23498231
87523458 23498231

output:

87523458

result:

ok single line: '87523458'

Test #10:

score: 0
Accepted
time: 5ms
memory: 23652kb

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: 23368kb

input:

4 1000000000
1000000000 0
1000000000 1000000000
0 1000000000
0 0

output:

1000000000

result:

ok single line: '1000000000'

Subtask #2:

score: 0
Wrong Answer

Dependency #1:

100%
Accepted

Test #12:

score: 9
Accepted
time: 0ms
memory: 23396kb

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: 4ms
memory: 22632kb

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: 21632kb

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: 21540kb

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: 21852kb

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: 22464kb

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: 0ms
memory: 23272kb

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: 22904kb

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: 22764kb

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: 2ms
memory: 23384kb

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: 2ms
memory: 22700kb

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: 0ms
memory: 22920kb

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: -9
Wrong Answer
time: 0ms
memory: 22324kb

input:

6 884
884 622
884 317
228 317
228 96
0 96
0 622

output:

884

result:

wrong answer 1st lines differ - expected: '228', found: '884'

Subtask #3:

score: 0
Wrong Answer

Test #32:

score: 11
Accepted
time: 0ms
memory: 22956kb

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: 7ms
memory: 24156kb

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: 364ms
memory: 27348kb

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: 191ms
memory: 25468kb

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: 120ms
memory: 24168kb

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: 0ms
memory: 22652kb

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: 3ms
memory: 23388kb

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: 220ms
memory: 25176kb

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: 240ms
memory: 24332kb

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: 42ms
memory: 27104kb

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: 195ms
memory: 23920kb

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: -11
Wrong Answer
time: 2ms
memory: 21856kb

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:

102982

result:

wrong answer 1st lines differ - expected: '1000000000', found: '102982'

Subtask #4:

score: 0
Wrong Answer

Test #45:

score: 19
Accepted
time: 4ms
memory: 21956kb

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: 17480kb

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: 23ms
memory: 21456kb

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: 76ms
memory: 24952kb

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: 24764kb

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: 32ms
memory: 25688kb

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: 25ms
memory: 28136kb

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:

0%