题目描述 题目描述:
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个长度为 n 的整数数组 a 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示已经种了花。问能否在不打破种植规则的情况下再种入 m 朵花?能则返回 true ,不能则返回 false。
输入格式:
第一行输入一个整数 t,表示 t 组数据。
对于每组数据:
第一行输入两个整数n,m。n表示花坛地块数,m表示需要种植的花朵数、
接下来一行,输入花坛地块种植花朵情况。
输出格式:
能否种植m朵花
样例输入1:
1
5 1
1 0 0 0 1
样例输出1:
true
约定:
1<=t,n,m<=100
提示: 我的代码
#include<bits/stdc++.h>
using namespace std;
int t;
int main()
{
cin>>t;
for(int i=1;i<=t;i++)
{
int n,m,a[105];
a[0]=0;
cin>>n>>m;
if((m-1)*2>=n)
{
cout<<"false";
continue;
}
int sss=0;
for(int j=1;j<=n;j++)
{
scanf("%d",&a[j]);
if(a[j]==1 and a[j-1]==1)
{
sss=1;
continue;
}
}
if(sss=1)
{
cout<<"false";
}
a[n+1]=0;
int sum=0;
for(int j=1;j<=n;j++)
{
if(a[j-1]==0 and a[j]==0 and a[j+1]==0)
{
sum++;
a[j]=1;
}
}
if(sum>=m) cout<<"true";
}
return 0;
}
蒟蒻求助