首页 > 代码库 > #418(div2)A

#418(div2)A

题意:长度为n,m的2个数列a,b。a中有m个0,将m个数代替0,问是否只有一种放法让a为递增的,可以输出No,否则Yes

思路:当m大于1的时候,肯定是Yes,然后我们将他放进去试一下就行了


 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main(){
 5     int n,k;
 6     cin>>n>>k;
 7     int a[100];
 8     int b[100];
 9     for(int i=1;i<=n;i++){
10         scanf("%d",&a[i]);
11     }
12     for(int i=1;i<=k;i++) scanf("%d",&b[i]);
13     if(k>1){
14         cout<<"Yes"<<endl;
15     }
16     else {
17             if(a[1]==0) a[1]=b[1];
18         for(int i=1;i<n;i++){
19             if(a[i+1]==0){
20                 swap(a[i+1],b[1]);
21             }
22             if(a[i]>=a[i+1]){
23                 cout<<"Yes"<<endl;return 0;
24             }
25         }
26         if(a[n-1]>=a[n]){
27              cout<<"Yes"<<endl;return 0;
28         }
29         cout<<"No"<<endl;
30     }
31     return 0;
32 }

 


 

#418(div2)A