結果
問題 |
No.420 mod2漸化式
|
ユーザー |
![]() |
提出日時 | 2018-03-17 14:56:25 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 98 ms / 1,000 ms |
コード長 | 564 bytes |
コンパイル時間 | 122 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 12,288 KB |
最終ジャッジ日時 | 2024-12-24 00:25:59 |
合計ジャッジ時間 | 4,739 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 35 |
コンパイルメッセージ
Syntax OK
ソースコード
n=gets.to_i if n==0 puts "1 0" elsif n>31 puts "0 0" else dp = Array.new(31).map{Array.new(31,0)} dp2= Array.new(31).map{Array.new(31,0)} ans=0 r=1 31.times{|i| dp[0][i]=1 dp2[0][i]=r ans+=r r*=2 } if n==1 puts [31 ,ans]*" " else (n-1).times{|p1| r=1 31.times{|p2| r2=r*2 ((p2+1)..(30)).each{|p3| dp[p1+1][p3]+=dp[p1][p2] dp2[p1+1][p3]+=dp[p1][p2]*r2+dp2[p1][p2] r2*=2 } r=r*2 } } ans1=dp[n-1].inject{|sum,e| sum+e } ans2=dp2[n-1].inject{|sum,e| sum+e } puts [ans1,ans2]*" " end end