読者です 読者をやめる 読者になる 読者になる

Codeforces Beta Round #82 (Div. 2)

Codeforces

キリン本を読み終わったのでRuby1.9で。
前回は unrated だったので実質4回目。もっと参加したいなぁ…

A:

trumpでない場合は同じ種類のカードしか出せないという条件を見逃して Wrong answer on test 48 \(^o^)/
以下修正したコード

#!/usr/bin/env ruby

trump = gets.chomp
first, second = *gets.chomp.split(/ /)

arr = %[6 7 8 9 T J Q K A]

if first[1] == second[1] or first[1] == trump
  if arr.index(first[0]) > arr.index(second[0]) or first[1] == trump && second[1] != trump
    puts "YES"
  else
    puts "NO"
  end
else
  puts "NO"
end

B:

最後の行はRubyっぽく書けたと思う。

#!/usr/bin/env ruby

n = gets.chomp.to_i
arr = []
n.times do |i|
  arr.push gets.chomp.split(/ /).map{|n| n.to_i} + [i+1]
end

n.times do |i|
  n.times do |j|
    if arr[i][0] < arr[j][0] and arr[i][1] < arr[j][1] and arr[i][2] < arr[j][2]
      arr[i][4] = 0
    end
  end
end

puts arr.select{|a| a[4] != 0}.min{|a,b| a[3] <=> b[3]}[4]

Array#minってブロックを取るバージョンもあるんですね。