QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#424795#8711. TilesMatutino15 81ms29532kbC++142.9kb2024-05-29 17:22:002024-05-29 17:22:00

Judging History

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

  • [2024-05-29 17:22:00]
  • 评测
  • 测评结果:15
  • 用时:81ms
  • 内存:29532kb
  • [2024-05-29 17:22:00]
  • 提交

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<<vis[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);
			if (ty) for (auto it=L;it!=R;++it) if ((bx[i]&1)!=vis[*it]){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 (R!=s.end()&&vis[*R]!=(bx[i]&1)) cnt[vis[r]=bx[i]&1]++,s.insert(r);
			if (vis[l]!=(bx[i]&1)) vis[l]>0?cnt[vis[l]]++:0,s.insert(l); else s.erase(l);
		}
		if (flg) break; 
		// for (auto it:s) std::cerr<<by[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;}
			
			// 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: 0ms
memory: 22408kb

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

input:

4 999999999
999999999 0
999999999 1000000000
0 1000000000
0 0

output:

999999998

result:

ok single line: '999999998'

Test #3:

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

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

input:

4 317
317 0
317 920
0 920
0 0

output:

316

result:

ok single line: '316'

Test #5:

score: 0
Accepted
time: 2ms
memory: 22820kb

input:

4 912
912 814
912 0
0 0
0 814

output:

912

result:

ok single line: '912'

Test #6:

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

input:

4 2
0 0
0 1
2 1
2 0

output:

0

result:

ok single line: '0'

Test #7:

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

input:

4 1
0 0
0 1
1 1
1 0

output:

0

result:

ok single line: '0'

Test #8:

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

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

input:

4 87523458
87523458 42385699
0 42385699
0 23498231
87523458 23498231

output:

87523458

result:

ok single line: '87523458'

Test #10:

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

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

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

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

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

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

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

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

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

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

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

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

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

input:

6 615
492 993
492 748
615 748
615 311
0 311
0 993

output:

614

result:

wrong answer 1st lines differ - expected: '492', found: '614'

Subtask #3:

score: 11
Accepted

Test #32:

score: 11
Accepted
time: 4ms
memory: 22604kb

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Wrong Answer

Test #89:

score: 22
Accepted
time: 30ms
memory: 25380kb

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

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
Wrong Answer
time: 35ms
memory: 25556kb

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:

6691218

result:

wrong answer 1st lines differ - expected: '198506134', found: '6691218'

Subtask #6:

score: 0
Wrong Answer

Test #118:

score: 25
Accepted
time: 32ms
memory: 27164kb

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: 0
Accepted
time: 80ms
memory: 29292kb

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:

298364980

result:

ok single line: '298364980'

Test #120:

score: -25
Wrong Answer
time: 61ms
memory: 25884kb

input:

199996 939450484
183372590 726043385
183372590 947636904
183351398 947636904
183351398 585647776
183326398 585647776
183326398 815654133
183324414 815654133
183324414 681316487
183304068 681316487
183304068 993350372
183281288 993350372
183281288 748476649
183258832 748476649
183258832 772289334
183...

output:

73446

result:

wrong answer 1st lines differ - expected: '158652', found: '73446'

Subtask #7:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%