📑

RubyでAtCoderするときの雛形

2022/04/03に公開約700字

雛形

N個の数字を合計する問題の例

$stdin = DATA
n = gets.to_i
p gets.split.take(n).map(&:to_i).sum
__END__
3
20 30 50
# >> 100
  • gets$stdin から受け取る
  • $stdin は変更してよい
  • Ruby には __END__ の下に記述すると DATA.gets で順に受け取れる機能がある
  • なので $stdinDATA にする
  • すると getsDATA.gets 相当になる
  • なので __END__ の後のテキストが gets で順に取得できる

ついでに書くと、るびきち先生の rcodetools (xmpfilter) を活用すると実行結果がソースにコメントに出るので Emacs を利用の方にはおすすめしたい。

# >> 100

あと xmpfilter を使うと $stdin = DATA を書かなくても __END__ の内容を gets で取得できる。

提出

ちょっとダサいけど $stdin = DATA__END__ の間の部分だけをコピペして提出する。

n = gets.to_i
p gets.split.map(&:to_i).take(n).sum

$stdin = DATA がないので gets は本当の標準入力から受け取れる。

xmpfilter だけを使っている場合は $stdin = DATA が不要なのでそのまま提出できる。

欠点

  • __END__ の下に1つ分の入力しか書けない

Discussion

ログインするとコメントできます