昨晚coderforces爆零。。零了,不可思议,,原因是第一题没考虑边界情况。。直接认为所有0都在最中间,被hack哭了。。第二题。。没看清题意,直接按照最简单的思路来,结果,hack。。第三题,在最后七分钟敲出来了,日哦,为什么全输出0,找了七分钟。。。一个地方下标k写成i了,,结果。。过了时间了,过后一交,218ms过,题目给了2000ms??我感觉石乐志。
第一题,水。。唉
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <queue>
#define siz 100005
using namespace std;
int n,k;
int arr[205],brr[205];
void solve(){
int flag=1,ans=0,index;
for(int i=1;i<=n;i++){
if(arr[i]!=0){
if(arr[i]>ans){
ans=arr[i];
}
else{
flag=0;
}
}
else{
index=i;
}
}
if(flag==0){ puts("Yes");return;}
if(k==1){
//cout<<brr[1]<<" "<<index<<endl;
if(index>1&&index<n&&brr[1]>arr[index-1]&&brr[1]<arr[index+1]){
puts("No");
return ;
}
if(index==1&&brr[1]<arr[index+1]){
puts("No");
return ;
}
if(index==n&&brr[1]>arr[index-1]){
puts("No");
return ;
}
}
puts("Yes");
}
int main()
{
while(~scanf("%d %d",&n,&k)){
//int flag=1,ant;
for(int i=1;i<=n;i++){
scanf("%d",&arr[i]);
}
for(int i=1;i<=k;i++){
scanf("%d",&brr[i]);
}
solve();
}
return 0;
}