题目大意:

一条线上有n个高度不同的位置,m个询问(ai),求水位为ai时海岛有多少块

思路:

直接模拟题目要求即可

代码实现

#include "iostream"

using namespace std;

const int N = 1e3 + 10;
int h[N], a[N];
int main(){
    int n, m;
    cin >> n >> m;
    for(int i = 1; i <= n; i ++){
        cin >> h[i];
    }

    for(int i = 1; i <= m; i ++){
        cin >> a[i];
    }

    int ans = 0;
    for(int i = 1; i <= m; i ++){
        ans = 0;
        int falg = 0;
        for(int j = 1; j <= n; j ++){
            if(h[j] - a[i] > 0){
                falg ++;
            } else{
                falg = 0;
            }
            if(falg == 1 && h[j] - a[i] > 0){
                ans ++;
            }
        }
        cout << ans << endl;
    }

    return 0;
}