トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

AtCoder Beginer Contest 013

[競技プログラミング]

AtCoder Beginer Contest 013

AtCoder Beginer Contest 013

  A - A

  • 結果:

  B - 錠

  • 結果:

  C - 節制

  • 結果:

  D - 阿弥陀

  • 結果:
lines = $stdin.read
array = lines.split("\n")
 
def fact(n, a=1)
  return a if n == 0
  fact(n-1, n*a)
end
 
N,M,D = array[0].split(" ").map(&:to_i)
A     = array[1].split(" ").map(&:to_i)
 
st    = 1.upto(N).to_a
to    = 1.upto(N).to_a
 
for a in A.reverse
  to[a], to[a-1] = to[a-1],to[a]
end
 
d = if D < fact(N)
      D
    else
      D % fact(N)
    end
 
1.upto(d) do |i|
  #puts "concat! D =#{i}"
  neo_to = Array.new(N)
 
  to.each_with_index do |elem,idx|
    neo_to[idx] = st[elem-1]
  end
  st = neo_to
  #puts st.to_s
end
 
st.each{ |t| puts t }
お名前: コメント: