結果
| 問題 | No.319 happy b1rthday 2 me |
| コンテスト | |
| ユーザー |
char134217728
|
| 提出日時 | 2017-09-15 03:00:33 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 90 ms / 2,000 ms |
| コード長 | 787 bytes |
| コンパイル時間 | 798 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 12,160 KB |
| 最終ジャッジ日時 | 2024-11-07 21:30:56 |
| 合計ジャッジ時間 | 4,510 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 29 |
コンパイルメッセージ
Syntax OK
ソースコード
a, b = gets.chomp.split(" ")
def pow(n)
n.times.inject(1){|a,b|a *= 10}
end
def calc(a)
l = a.length
if l == 1
return a[0] > 1 ? 1 : 0
end
ret = 1
(0..l-2).each do |i|
ret += a[0...i].join.to_i * pow(l-i-2)
case a[i..i+1].join.to_i <=> 12
when -1
#
when 0
ret += [a[i+2...l].join.to_i+1, 1].max
when 1
ret += pow(l-i-2)
else
end
if i > 0
ret += pow(l-i-2);
else
case a[0] <=> 2
when -1
#
when 0
ret += a[1..l-2].join.to_i
ret += 1 if a[l-1] >= 2
when 1
ret += pow(l-2)
else
end
end
end
ret
end
a = (a.to_i - 1).to_s.chars.map &:to_i
ans = calc(b.chars.map &:to_i) - calc(a)
ans -= 1 if a[-1] == 1 && (a.length == 1 || a[0] == 2)
p ans
char134217728