回答編集履歴

2

文言修正

2020/04/07 17:00

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```
6
6
 
7
- ここで`a.begin()`より前の要素を消去しようとしています。
7
+ ここで`a.begin()`より前の範囲外要素を消去しようとしています。
8
8
 
9
9
 
10
10
 

1

解答例説明追加

2020/04/07 17:00

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -5,3 +5,21 @@
5
5
  ```
6
6
 
7
7
  ここで`a.begin()`より前の要素を消去しようとしています。
8
+
9
+
10
+
11
+ > また、解答例のvis[]とwhile{}の中で何故そのように書くのか、どういう仕組みなのかが理解できません。
12
+
13
+
14
+
15
+ ・`vis[]`は残っている人の席を`0`、抜けた人の席を`1`
16
+
17
+ ・`count`は前回抜けた人の次からの残っている人がいたの席のカウント
18
+
19
+ ・`rev`は残っている人数
20
+
21
+ `while{}`で残り1人になるまでループ。
22
+
23
+ `do{}while(vis[k]==1);`で抜けた人の席を読み飛ばし。
24
+
25
+ としているだけです。