主にAtCoderでよく使う入力をまとめてみました。
'18/9現在AtCoderでサポートされているのはNim0.13.0なので、文法はそれを前提にします。
(見にくくてすまない)
注意事項 :
・紹介しているものはstring,int,float,seq型の入力を受け付けるコードのみです。
・動作確認はテキトーにしかやってません。
・float型の場合、数値の誤差は勝手に丸めています。そのため実際の値と異なる場合があります。
例 :
# 型
### 入力
var X = 本文
# X = 値
空白なし - 1行
# string
## Tlllune
var X = readline(stdin)
# X = "Tlllune"
# int
## 1192296
import strutils
var X = parseInt(readline(stdin))
# X = 1192296
# float
## 81
import strutils
var X = parseFloat(readline(stdin))
# X = 81.0
空白でsplit - 1行
# seq[string]
## Julia Python ....
import strutils
var X = split(readline(stdin))
# X = @["Julia","Python",...]
# seq[int]
## 11 23 ...
import sequtils, strutils
var X = map(split(readline(stdin)),parseInt)
# X = @[11,23,...]
# seq[float]
## 11.4 51.4 ...
import sequtils,strutils
var X = map(split(readline(stdin)),parseFloat)
# X = @[11.4,51.4,...]
空白なし - 複数行
行数は 3 とします。
行数を変える場合は、mapIt(0..<(number),---)
の(number)
に整数で行数を入れてください。
# seq[string]
## Nim
## AtCoder
## Chokudai
import sequtils
var X = mapIt(0..<3,readline(stdin))
# X = @["Nim","AtCoder","Chokudai"]
# seq[int]
## 49106
## 889
## 724106
import sequtils,strutils
var X = mapIt(0..<3,parseInt(readline(stdin)))
# X = @[49106,889,724106]
# seq[float]
## 3.1415
## 2.7183
## 23.141
import sequtils,strutils
var X = mapIt(0..<3,parseFloat(readline(stdin)))
# X = @[3.1415,2.7183,23.141]
そろそろパターンが見えてきたと思います。最後に
空白でsplit - 複数行
空白なし複数行と同じ3行です。
# seq[seq[string]]
## Microsoft Windows ...
## BellLab Unix ...
## Apple Orange ...
import sequtils,strutils
var X = mapIt(0..<3,split(readline(stdin)))
# X = @[ @["Microsoft","Windows",...], @["BellLab","Unix",...], @["Apple","Orange",...]]
# seq[seq[int]]
## 1998 11 27 ...
## 2000 3 4 ...
## 2001 1 31 ...
import sequtils,strutils
var X = mapIt(0..<3,map(split(readline(stdin)),parseInt))
# X = @[ @[1998,11,27...], @[2000,3,4...], @[2001,1,31...]]
# seq[seq[float]]
## 1.008 4.003 ...
## 6.941 9.012 ...
## 10.81 12.01 ...
import sequtils,strutils
var X = mapIt(0..<3,map(split(readline(stdin)),parseFloat))
# X = @[ @[1.008,4.003,...], @[6.941,9.102,...], @[10.81,12.01,...]]
以上。
とりあえず、いかなる状況においても
import sequtils,strutils
を忘れないようにしましょう。
最後にまとめておきます。
コピペして準備用( 補完、メモなど )にご利用ください。
#[
STRING
readline(stdin)
split(readline(stdin))
mapIt(0..<3,readline(stdin))
mapIt(0..<3,split(readline(stdin)))
INT
parseInt(readline(stdin))
map(split(readline(stdin)),parseInt)
mapIt(0..<3,parseInt(readline(stdin)))
mapIt(0..<3,map(split(readline(stdin)),parseInt))
FLOAT
parseFloat(readline(stdin))
map(split(readline(stdin)),parseFloat)
mapIt(0..<3,parseFloat(readline(stdin)))
mapIt(0..<3,map(split(readline(stdin)),parseFloat))
]#