0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RubyでAtCoder ABC262(A, B, C)を解いてみた

Posted at

はじめに

Webエンジニアを目指して、RubyやRailsをいじってます。
今回は、RubyでAtCoder ABC262のA, B, Cを解きました。備忘録として解き方をまとめていきたいと思います。

A - World Cup

a-262.rb
y = gets.to_i
a = y % 4
puts y + [2, 1, 0, 3][a]

解説

テストケースから分かるように答えはyに[2,1,0,3]のyを4で割った余りのインデックスに対応する要素を足したものになります。

B - Triangle (Easier)

b-262.rb
n, m = gets.split.map(&:to_i)
array = Array.new(n + 1) { Array.new(n + 1, false) }
m.times do
  u, v = gets.split.map(&:to_i).sort
  array[u][v] = true
  array[v][u] = true
end

ans = 0
for i in 1..n - 2
  for j in i + 1..n - 1
    for k in j + 1..n
      ans += 1 if array[i][j] && array[j][k] && array[k][i]
    end
  end
end
puts ans

解説

Nが100以下と小さいため、3重ループを回して全探索することができます。

C - Min Max Pair

c-262.rb
n = gets.to_i
a = gets.split.map(&:to_i)

count = 0
a.each_with_index do|i, j|
  count += 1 if i == j + 1
end

ans = (count * (count - 1)) / 2
n.times do |i|
  ans += 1 if a[i] > i + 1 && a[a[i] - 1] == i + 1
end
puts ans

解説

公式解説を参考にしました)

a_i=iかつa_j=j
a_i=jかつa_j=i

のいずれかが成り立つことを利用することで答えを求めることができます。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?