如果能,那么输出NO,只要有不能的情况,就输出YES;
如果只有一个0,只有这种情况才能成递增序列,所以替换后判断是不是递增序列。
如果0的个数大于一,而且题目要求每个数只能出现一次,所以替换的时候不按照递增序列替换那么整个序列就不会是递增的;
代码也比较简单明了!:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[201],b[201];
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int j=1;j<=m;j++)
{
scanf("%d",&b[j]);
}
if(m>1)
{
printf("Yes\n");
}
if(m==1)
{
for(int i=1;i<=n;i++)
{
if(a[i]==0)
a[i]=b[1];
}
int t=1;
for(int i=1;i<n;i++)
{
if(a[i]<a[i+1])
continue;
else
{
t=0;
break;
}
}
if(t==1)
printf("No\n");
else
printf("Yes\n");
}
return 0;
}