回答編集履歴

5

追記

2021/12/20 00:02

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -9,3 +9,55 @@
9
9
  任意の身長xに対し x <= a[t] なる最小の要素:a[t]を見付ければ、
10
10
 
11
11
  そこから aの末尾まで の距離(人数)が求める答ですよね?
12
+
13
+
14
+
15
+ [追記] やってみた:
16
+
17
+ ```C++
18
+
19
+ #include <iostream>
20
+
21
+ #include <algorithm>
22
+
23
+ #include <vector>
24
+
25
+ #include <iterator>
26
+
27
+
28
+
29
+ int main() {
30
+
31
+ using namespace std;
32
+
33
+
34
+
35
+ int N, Q;
36
+
37
+ cin >> N >> Q;
38
+
39
+
40
+
41
+ vector<int> a(N);
42
+
43
+ vector<int> x(Q);
44
+
45
+
46
+
47
+ for ( int& item : a ) cin >> item;
48
+
49
+ for ( int& item : x ) cin >> item;
50
+
51
+
52
+
53
+ sort(a.begin(), a.end());
54
+
55
+ for (int i=0; i<Q; i++) {
56
+
57
+ cout << distance(lower_bound(a.begin(), a.end(), x.at(i)), a.end()) << endl;
58
+
59
+ }
60
+
61
+ }
62
+
63
+ ```

4

微修正

2021/12/20 00:02

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -6,6 +6,6 @@
6
6
 
7
7
  a が昇順にソートされているなら、
8
8
 
9
- 任意の身長xに対し x <= a[t] なる最小のtを見付ければ、
9
+ 任意の身長xに対し x <= a[t] なる最小の要素:a[t]を見付ければ、
10
10
 
11
11
  そこから aの末尾まで の距離(人数)が求める答ですよね?

3

加筆

2021/12/19 14:02

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -1,3 +1,11 @@
1
1
  vector<int> a(N); をソートしたのなら、逐次比較しつつ勘定する必要はないのでは?
2
2
 
3
3
  ※ なんのためにソートしたんです?
4
+
5
+
6
+
7
+ a が昇順にソートされているなら、
8
+
9
+ 任意の身長xに対し x <= a[t] なる最小のtを見付ければ、
10
+
11
+ そこから aの末尾まで の距離(人数)が求める答ですよね?

2

微修正

2021/12/19 14:00

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -1 +1,3 @@
1
1
  vector<int> a(N); をソートしたのなら、逐次比較しつつ勘定する必要はないのでは?
2
+
3
+ ※ なんのためにソートしたんです?

1

修正

2021/12/19 13:26

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -1 +1 @@
1
- vector<int> a(N); を降順にソートしておけばのでは?
1
+ vector<int> a(N); をソートしたのなら、逐次比較しつつ勘定する必要はないのでは?