結果

問題 No.1254 補強への架け橋
ユーザー laneguelanegue
提出日時 2020-10-09 23:43:29
言語 Ruby
(3.4.1)
結果
AC  
実行時間 573 ms / 2,000 ms
コード長 552 bytes
コンパイル時間 573 ms
コンパイル使用メモリ 7,168 KB
実行使用メモリ 32,128 KB
最終ジャッジ日時 2024-07-20 14:35:02
合計ジャッジ時間 29,208 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 123
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

N=gets.to_i
E=Array.new(N){[]}
N.times{|n|
    a,b=gets.split.map{|i|i.to_i-1}
    E[a] << [b,n+1]
    E[b] << [a,n+1]
}
S=[[0,nil]]
C=Array.new(N){false}
max=[]
loop{
    #warn S.inspect
    n=S[-1][0]
    if C[n]
        s=S.index{|i|i[0]==n}
        (s ... S.size-1).each{|i|
            max << S[i][1]
        }
        break
    end
    if E[n].empty?
        S.pop
        C[S[-1][0]]=false
        next
    end
    nn,ne=E[n].shift
    next if S.size>=2&&nn==S[-2][0]
    C[n]=true
    S[-1][1]=ne
    S << [nn,nil]
}
puts max.size
puts max*" "
0