

atcoderの問題を解く際、標準入力の個数がわからないことがあり、そのような場合にどうやってpythonで記述すればいいのか教えて下さい。この質問が不適切なら、教えてください。  
[atcoder abc 147 c](https://atcoder.jp/contests/abc147/tasks/abc147_c)


CC BY-SA 4.0
2019-12-13T13:42:41.647
61421
2019-12-13T15:43:33.883
32027
question
python
pythonのinput()のする回数がわからないときの解決策について


# 質問に対する回答

本家SOより引用：

> [`file.read`](http://docs.python.org/2/library/stdtypes#file.read) を使いましょう。
>
> `input_str = sys.stdin.read()`  
>  <https://stackoverflow.com/questions/21235855/how-to-read-user-input-until-
> eof/36237166>

入力用のファイルを作り、リダイレクトで渡しながら動作を確認するとよいでしょう。

# 質問で示されたAtCoderの問題に対しての回答

AtCoderを含め、多くのプログラミングコンテストでは入力の行数は判別可能です。以下に例を示します。

  1. 最初の入力で、 `N` が2だとするとAの添字はA_1及びA_2が入力されます。
  2. A_1 が3だとすると、3行に渡って次のような入力が行われます。

> x_{11} y_{11}  
>  x_{12} y_{12}  
>  x_{13} y_{13}

  3. 次にA_2が2だとすると、2行に渡って入力が行われます。

> x_{21} y_{21}  
>  x_{22} y_{22}

以上で入力は終了します。最後の `x_{22} y_{22}` が `x_{NA_{N}} y_{NA_{N}}` に相当するのがわかるでしょうか。


CC BY-SA 4.0
2019-12-13T15:43:33.883
61423
2019-12-13T15:43:33.883
2020-06-17T08:14:45.997
-1
29826
61421
answer