---
# System prepended metadata

title: j354. 積木對接

---

# j354. 積木對接
## [題目連結](https://zerojudge.tw/ShowProblem?problemid=j354)
## 解題想法
* 用vector排出積木卡榫和凹槽位置，若卡榫不在同一位置代表能對接。
## 遭遇到的困難
* 由於輸入的數字是卡榫數量，要先計算出卡榫和凹槽的和。
## 程式碼
```cpp=01
#include<stdio.h>
#include<vector>
using namespace std;
int main(){
	int n,m,i,j,a;
	vector<int>l;
	vector<int>s;
	scanf("%d",&n);
	for(i=0;i<n*2+1;i++){
		scanf("%d",&a);
		for(j=0;j<a;j++)l.push_back(0+i%2);
	}
	scanf("%d",&m);
	for(i=0;i<m*2-1;i++){
		scanf("%d",&a);
		for(j=0;j<a;j++)s.push_back(1-i%2);
	}
	for(i=0;i<=l.size()-s.size();i++){
		a=0;
		for(j=0;j<s.size();j++){
			if(s[j]==1&&l[j+i]==1){
				a=1;
				break;
			}
		}
		if(a==0)break;
	}
	if(a==0)printf("YES");
	else printf("NO");
	return 0;
} 