teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

追記

2021/12/20 00:02

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -3,4 +3,30 @@
3
3
 
4
4
  a が昇順にソートされているなら、
5
5
  任意の身長xに対し x <= a[t] なる最小の要素:a[t]を見付ければ、
6
- そこから aの末尾まで の距離(人数)が求める答ですよね?
6
+ そこから aの末尾まで の距離(人数)が求める答ですよね?
7
+
8
+ [追記] やってみた:
9
+ ```C++
10
+ #include <iostream>
11
+ #include <algorithm>
12
+ #include <vector>
13
+ #include <iterator>
14
+
15
+ int main() {
16
+ using namespace std;
17
+
18
+ int N, Q;
19
+ cin >> N >> Q;
20
+
21
+ vector<int> a(N);
22
+ vector<int> x(Q);
23
+
24
+ for ( int& item : a ) cin >> item;
25
+ for ( int& item : x ) cin >> item;
26
+
27
+ sort(a.begin(), a.end());
28
+ for (int i=0; i<Q; i++) {
29
+ cout << distance(lower_bound(a.begin(), a.end(), x.at(i)), a.end()) << endl;
30
+ }
31
+ }
32
+ ```

4

微修正

2021/12/20 00:02

投稿

episteme
episteme

スコア16612

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

3

加筆

2021/12/19 14:02

投稿

episteme
episteme

スコア16612

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

2

微修正

2021/12/19 14:00

投稿

episteme
episteme

スコア16612

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

1

修正

2021/12/19 13:26

投稿

episteme
episteme

スコア16612

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