Submission #1774269


Source Code Expand

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define N 200010
using namespace std;

struct aa{int a, b, c, d;}a[N];
int n, H, l, flag[N], size[4], x, y;
vector<int>son[5][210];

inline int check(int i, int j){
	while(son[i][j].size()&&flag[son[i][j][son[i][j].size()-1]])son[i][j].pop_back();
	if(!son[i][j].size())return 0;
	return son[i][j][son[i][j].size()-1];
}

int main(){
	scanf("%d%d", &n, &H);
	for(int i=0; i<=4; i++)for(int j=0; j<=H; j++)son[i][j].clear();
	for(int i=0; i<=3; i++)size[i]=0;
	for(int i=1; i<=n; i++){
		scanf("%d%d%d%d", &a[i].a, &a[i].b, &a[i].c, &a[i].d);
		if(!a[i].c&&!a[i].d){
			size[0]++;
			son[0][a[i].a].push_back(i); son[1][a[i].b].push_back(i);
		}
		if(!a[i].c&&a[i].d){size[1]++; son[2][a[i].a].push_back(i);}
		if(a[i].c&&!a[i].d){size[2]++; son[3][a[i].b].push_back(i);}
		if(a[i].c&&a[i].d){size[3]++; son[4][0].push_back(i);}
	}
	l=n; memset(flag, 0, sizeof(flag));
	while(size[1]+size[2]+size[3]){
		if(size[3]){
			x=check(4, 0); flag[x]=1; y=check(3, a[x].c);
			if(y){
				size[3]--; size[2]--; flag[y]=1;
				l++; a[l].c=a[y].c; a[l].d=a[x].d;
				size[3]++; son[4][0].push_back(l);
				continue;
			}
			y=check(1, a[x].c);
			if(y){
				size[3]--; size[0]--; flag[y]=1;
				l++; a[l].a=a[y].a; a[l].d=a[x].d;
				size[1]++; son[2][a[l].a].push_back(l);
				continue;
			}
			printf("NO"); return 0;
		}
		if(size[2]){
			for(int i=1; i<=H; i++){
				x=check(3, i); if(!x)continue;
				flag[x]=1; y=check(3, a[x].c);
				if(y){
					size[2]--; size[2]--; flag[y]=1;
					l++; a[l].c=a[y].c; a[l].b=a[x].b;
					size[2]++; son[3][a[l].b].push_back(l);
					break;
				}
				y=check(1, a[x].c);
				if(y){
					size[2]--; size[0]--; flag[y]=1;
					l++; a[l].a=a[y].a; a[l].b=a[x].b;
					size[0]++; son[0][a[l].a].push_back(l); son[1][a[l].b].push_back(l);
					break;
				}
				printf("NO"); return 0;
			}
			continue;
		}
		if(size[1]){
			for(int i=1; i<=H; i++){
				x=check(2, i); if(!x)continue;
				flag[x]=1; y=check(2, a[x].d);
				if(y){
					size[1]--; size[1]--; flag[y]=1;
					l++; a[l].a=a[x].a; a[l].d=a[y].d;
					size[1]++; son[2][a[l].a].push_back(l);
					break;
				}
				y=check(0, a[x].d);
				if(y){
					size[1]--; size[0]--; flag[y]=1;
					l++; a[l].a=a[x].a; a[l].b=a[y].b;
					size[0]++; son[0][a[l].a].push_back(l); son[1][a[l].b].push_back(l);
					break;
				}
				printf("NO"); return 0;
			}
		}
	}
	printf("YES");
	return 0;
}

Submission Info

Submission Time
Task E - Jigsaw
User leoly
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2536 Byte
Status WA
Exec Time 37 ms
Memory 5248 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:19:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &H);
                       ^
./Main.cpp:23:56: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d%d%d", &a[i].a, &a[i].b, &a[i].c, &a[i].d);
                                                        ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 1200
Status
AC × 3
AC × 65
WA × 19
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, a1.txt, a2.txt, a3.txt, b1.txt, b10.txt, b101.txt, b102.txt, b103.txt, b104.txt, b105.txt, b106.txt, b107.txt, b108.txt, b109.txt, b11.txt, b110.txt, b111.txt, b112.txt, b113.txt, b114.txt, b115.txt, b116.txt, b117.txt, b118.txt, b119.txt, b12.txt, b13.txt, b14.txt, b15.txt, b2.txt, b200.txt, b201.txt, b202.txt, b203.txt, b204.txt, b205.txt, b206.txt, b207.txt, b208.txt, b209.txt, b210.txt, b211.txt, b212.txt, b213.txt, b214.txt, b215.txt, b216.txt, b217.txt, b218.txt, b219.txt, b3.txt, b300.txt, b301.txt, b302.txt, b303.txt, b304.txt, b305.txt, b306.txt, b307.txt, b308.txt, b309.txt, b310.txt, b311.txt, b4.txt, b5.txt, b6.txt, b7.txt, b8.txt, b9.txt, c1.txt, c2.txt, c3.txt, c4.txt, c5.txt, d1.txt, d2.txt, d3.txt, d4.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
a1.txt AC 2 ms 1024 KB
a2.txt AC 5 ms 1280 KB
a3.txt AC 35 ms 4092 KB
b1.txt WA 2 ms 1024 KB
b10.txt WA 8 ms 1920 KB
b101.txt WA 34 ms 5244 KB
b102.txt AC 35 ms 4604 KB
b103.txt WA 37 ms 5120 KB
b104.txt WA 33 ms 4732 KB
b105.txt AC 33 ms 4480 KB
b106.txt AC 15 ms 2560 KB
b107.txt WA 32 ms 4096 KB
b108.txt WA 34 ms 4480 KB
b109.txt AC 29 ms 4096 KB
b11.txt WA 23 ms 3840 KB
b110.txt WA 33 ms 4992 KB
b111.txt AC 33 ms 4608 KB
b112.txt WA 36 ms 4608 KB
b113.txt WA 32 ms 4480 KB
b114.txt AC 33 ms 4608 KB
b115.txt AC 15 ms 2432 KB
b116.txt WA 30 ms 4352 KB
b117.txt WA 35 ms 4608 KB
b118.txt AC 26 ms 3712 KB
b119.txt AC 29 ms 3968 KB
b12.txt AC 24 ms 3840 KB
b13.txt AC 34 ms 5244 KB
b14.txt AC 34 ms 5244 KB
b15.txt AC 35 ms 5244 KB
b2.txt WA 5 ms 1536 KB
b200.txt AC 33 ms 4348 KB
b201.txt AC 32 ms 4348 KB
b202.txt AC 33 ms 4348 KB
b203.txt AC 33 ms 4348 KB
b204.txt AC 34 ms 5116 KB
b205.txt AC 36 ms 4992 KB
b206.txt AC 31 ms 4096 KB
b207.txt AC 31 ms 4096 KB
b208.txt AC 33 ms 4608 KB
b209.txt AC 31 ms 3712 KB
b210.txt AC 33 ms 5116 KB
b211.txt AC 35 ms 5116 KB
b212.txt AC 36 ms 5116 KB
b213.txt AC 34 ms 5116 KB
b214.txt AC 34 ms 5116 KB
b215.txt AC 37 ms 4988 KB
b216.txt AC 37 ms 4864 KB
b217.txt AC 36 ms 4864 KB
b218.txt AC 36 ms 4736 KB
b219.txt AC 34 ms 4480 KB
b3.txt AC 34 ms 4476 KB
b300.txt AC 34 ms 4480 KB
b301.txt AC 29 ms 3584 KB
b302.txt AC 21 ms 3456 KB
b303.txt AC 21 ms 3456 KB
b304.txt AC 35 ms 4480 KB
b305.txt AC 34 ms 4480 KB
b306.txt AC 25 ms 4096 KB
b307.txt AC 22 ms 3712 KB
b308.txt AC 32 ms 3968 KB
b309.txt AC 35 ms 4480 KB
b310.txt AC 28 ms 4224 KB
b311.txt AC 28 ms 4352 KB
b4.txt WA 34 ms 5248 KB
b5.txt AC 5 ms 1408 KB
b6.txt AC 5 ms 1408 KB
b7.txt AC 5 ms 1536 KB
b8.txt AC 5 ms 1408 KB
b9.txt AC 5 ms 1408 KB
c1.txt AC 28 ms 4224 KB
c2.txt AC 28 ms 4352 KB
c3.txt AC 23 ms 4220 KB
c4.txt AC 29 ms 4856 KB
c5.txt AC 15 ms 3200 KB
d1.txt WA 31 ms 3968 KB
d2.txt WA 34 ms 4096 KB
d3.txt WA 32 ms 4224 KB
d4.txt WA 26 ms 4096 KB
sample1.txt AC 2 ms 1024 KB
sample2.txt AC 1 ms 1024 KB
sample3.txt AC 1 ms 1024 KB