题意:一个人解决n个问题,这个问题的值比k小,每次只能解决最左边的或者最右边的问题,解决了就消失了。问这个人能解决多少个问题。
题解:模拟 可以先从左向右开始找小于等k的,然后删除掉,否则跳出循环,然后从右边向左找小于等于k的,删掉,大于k跳出循环。还可以不用删除,直接找小于的。
#include<bits/stdc++.h> using namespace std; int n,k,a[110],b[110],ans; int main() { cin>>n>>k; for(int i=0; i<n; i++) cin>>a[i]; for(int i=0; i<n; i++) if(a[i]<=k) ans++,b[i]=1; else break; for(int i=n-1; i>=0; i--) if(a[i]<=k&&!b[i]) ans++; else break; cout<<ans; return 0; }
n,k=map(int,input().split()) a=list(map(int,input().split())) ans=0 while a and a[0]<=k: a.pop(0);ans+=1 a.reverse() while a and a[0]<=k: a.pop(0);ans+=1 print (ans)