A、Mishka and Contest
思路:简单贪心。每次删掉首尾不超过k的元素,直到分别第一次遇到超过k的元素就不再继续删除即可。
AC代码:
1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <cmath> 5 #include <iostream> 6 #include <algorithm> 7 #include <iomanip> 8 #include <complex> 9 #include <string> 10 #include <vector> 11 #include <set> 12 #include <map> 13 #include <list> 14 #include <deque> 15 #include <queue> 16 #include <stack> 17 #include <bitset> 18 using namespace std; 19 typedef long long LL; 20 typedef unsigned long long ULL; 21 const int dir[4][2] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}}; // 上右下左 22 const int mx[8] = {-1, -2, -2, -1, 1, 2, 2, 1}; // 马可走的八个方向 23 const int my[8] = {-2, -1, 1, 2, 2, 1, -1, -2}; 24 const double eps = 1e-6; 25 const double PI = acos(-1.0); 26 const int maxn = 105; 27 const int inf = 0x3f3f3f3f; 28 29 int n, k, ans, a[maxn]; 30 31 int main() { 32 while(cin >> n >> k) { 33 ans = 0; 34 for(int i = 0; i < n; ++i) cin >> a[i]; 35 for(int i = 0, j = n - 1; i <= j;) { 36 if(a[i] <= k) ++i, ++ans; 37 else if(a[j] <= k) --j, ++ans; 38 else break; 39 } 40 cout << ans << endl; 41 } 42 return 0; 43 }