結果

問題 No.3289 Make More Happy Connection
コンテスト
ユーザー kona0001
提出日時 2025-09-25 01:58:23
言語 Ruby
(4.0.2)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
AC  
実行時間 453 ms / 2,000 ms
+ 674µs
コード長 653 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 242 ms
コンパイル使用メモリ 8,704 KB
実行使用メモリ 14,720 KB
最終ジャッジ日時 2026-07-15 05:13:52
合計ジャッジ時間 9,246 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
raw source code

n = gets.to_i

pre_x = -1
pre_y = -1
dp = Hash.new(0)
same = 0
n.times do
  x,y = gets.split.map(&:to_i)
  ndp = Hash.new(0)

  # xi, yi の順番に置くとき
  if x == pre_x
    ndp[y] = [dp[pre_x] + x, dp[pre_y]].max
  elsif x == pre_y
    ndp[y] = [dp[pre_y] + x, dp[pre_x]].max
  else
    ndp[y] = [dp[pre_x], dp[pre_y]].max
  end

  # yi, xi の順番に置くとき
  if y == pre_x
    ndp[x] = [dp[pre_x] + y, dp[pre_y]].max
  elsif y == pre_y
    ndp[x] = [dp[pre_y] + y, dp[pre_x]].max
  else
    ndp[x] = [dp[pre_x], dp[pre_y]].max
  end

  dp = ndp
  pre_x = x
  pre_y = y

  same += x if x == y
end
puts [dp[pre_x], dp[pre_y]].max + same
0