题解 | 01序列
01序列
https://www.nowcoder.com/practice/b0c948dbe577485598b982a430d65c39
#include <bits/stdc++.h>
using namespace std;
int main() {
int m;
cin>>m;
vector<int>arr(m);
for(int i=0;i<m;i++)
cin>>arr[i];
int n;
cin>>n;
int place=0;
for(int i=1;i<m-1;i++){//注意边界条件
if(arr[i-1]==0&&arr[i+1]==0){
//无关整体,只要前后两个位置为0就能放下,不管整体直接放
//如果放下的1的数量大于等于n则退出
//不是一次全放,而是从前往后一个一个放
arr[i]=1;
place++;
if(place==n)
break;
}
}
if(place==n)
cout<<"true";
else cout<<"false";
}
// 64 位输出请用 printf("%lld")