#include <bits/stdc++.h>
using namespace std;
#define pii pair < int , int >
#define eb emplace_back
#define pb push_back
#define int long long
#define fi first
#define se second
const int inf = 1e18;
void solve() {
int n,q; cin >> n >> q;
vector < int > h(n+1), t(q+1);
for(int i = 1;i <= n;i++) cin >> h[i];
for(int i = 1;i <= q;i++) cin >> t[i];
if(q == 1 && t[1] == 1e6) {
cout << n*(n+1)/2 << "\n";
return;
}
vector<int> qwe = h;
sort(qwe.begin(), qwe.end());
if(qwe == h) {
for(int _ = 1;_ <= q;_++) {
int l = 1, r = n, best = 0;
while(l <= r) {
int mid = l + (r-l)/2;
if(h[mid] <= t[_]) {
best = mid;
l = mid+1;
}
else r = mid-1;
}
cout << best*(best+1)/2 << "\n";
}
return;
}
for(int _ = 1;_ <= q;_++) {
int ans = 0, rn = 0;
bool is = 0;
for(int i = 1;i <= n;i++) {
if(h[i] <= t[_]) {
rn++;
is = 1;
}
else if(is) {
ans += rn*(rn+1)/2;
rn = 0;
is = 0;
}
}
ans += rn*(rn+1)/2;
cout << ans << "\n";
}
}
signed main() {
ios_base::sync_with_stdio(0);
cout.tie(0);
int t = 1; //cin >> t;
while(t--) solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |