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