This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const long long N = 1e6 + 10;
long long a[N];
long long n, q;
//for 78 points
void Solve1() {
for(long long i = 1; i <= q; i++) {
long long x;
cin >> x;
long long ans = 0, cnt = 0;
for(long long j = 1; j <= n; j++) {
if(a[j] <= x) {
cnt++;
ans++;
}
else {
ans += (cnt * (cnt - 1)) / 2;
cnt = 0;
}
}
ans += (cnt * (cnt - 1)) / 2;
cout << ans << endl;
}
}
void Solve2() {
for(long long i = 1; i <= q; i++) {
long long x;
cin >> x;
long long l = 1, r = n;
long long mid, ans = 0;
while(l <= r) {
mid = (l + r) / 2;
if(a[mid] <= x) {
ans = mid;
l = mid + 1;
}
else {
r = mid - 1;
}
}
cout << ans * (ans - 1) / 2 << endl;
}
}
void Solve() {
cin >> n >> q;
for(long long i = 1; i <= n; i++) {
cin >> a[i];
}
if(n * q <= 1e6) {
Solve1();
}
else {
Solve2();
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
Solve();
return 0;
}
# | 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... |