結果
| 問題 |
No.1677 mæx
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-09-11 00:03:25 |
| 言語 | Ruby (3.4.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 4,470 bytes |
| コンパイル時間 | 205 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 82,436 KB |
| 最終ジャッジ日時 | 2024-06-12 07:11:11 |
| 合計ジャッジ時間 | 5,108 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 RE * 1 |
| other | TLE * 1 -- * 17 |
コンパイルメッセージ
Syntax OK
ソースコード
#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.5.1
# from Racc grammar file "".
#
require 'racc/parser.rb'
require 'strscan'
MOD = 998244353
def max(x, y)
res = [0, 0, 0]
(0 .. 2).each do |a|
(0 .. 2).each do |b|
c = [a, b].max
res[c] += x[a] * y[b]
res[c] %= MOD
end
end
res
end
MEX = [
[1, 2, 1],
[2, 0, 0],
[1, 0, 0]
]
def mex(x, y)
res = [0, 0, 0]
(0 .. 2).each do |a|
(0 .. 2).each do |b|
c = MEX[a][b]
res[c] += x[a] * y[b]
res[c] %= MOD
end
end
res
end
def m_x(x, y)
res = [0, 0, 0]
(0 .. 2).each do |a|
(0 .. 2).each do |b|
c = MEX[a][b]
res[c] += x[a] * y[b]
res[c] %= MOD
c = [a, b].max
res[c] += x[a] * y[b]
res[c] %= MOD
end
end
res
end
class Parser < Racc::Parser
module_eval(<<'...end yc1677.rb.y/module_eval...', 'yc1677.rb.y', 79)
# 初期化
def initialize(input)
@scanner = StringScanner.new(input)
end
# 自動的に呼び出される
def next_token
return nil if @scanner.eos?
if (s = @scanner.scan(/[012maex?(),]/))
[s, s]
else
nil
end
end
...end yc1677.rb.y/module_eval...
##### State transition tables begin ###
racc_action_table = [
2, 5, 6, 7, 2, 2, 3, 15, 12, 13,
14, 15, 12, 13, 14, 8, 9, 10, 18, 20 ]
racc_action_check = [
10, 2, 2, 2, 18, 0, 1, 10, 10, 10,
10, 18, 18, 18, 18, 3, 4, 9, 11, 19 ]
racc_action_pointer = [
3, 6, -6, 15, 13, nil, nil, nil, nil, 13,
-2, 13, nil, nil, nil, nil, nil, nil, 2, 13,
nil ]
racc_action_default = [
-11, -11, -11, -11, -11, -2, -3, -4, 21, -11,
-11, -11, -5, -6, -7, -8, -9, -10, -11, -11,
-1 ]
racc_goto_table = [
11, 1, 4, nil, nil, nil, nil, nil, 19 ]
racc_goto_check = [
3, 1, 2, nil, nil, nil, nil, nil, 3 ]
racc_goto_pointer = [
nil, 1, 0, -10, nil ]
racc_goto_default = [
nil, 16, nil, nil, 17 ]
racc_reduce_table = [
0, 0, :racc_error,
8, 14, :_reduce_1,
1, 15, :_reduce_none,
1, 15, :_reduce_none,
1, 15, :_reduce_none,
1, 17, :_reduce_5,
1, 17, :_reduce_6,
1, 17, :_reduce_7,
1, 17, :_reduce_8,
1, 16, :_reduce_none,
1, 16, :_reduce_none ]
racc_reduce_n = 11
racc_shift_n = 21
racc_token_table = {
false => 0,
:error => 1,
"m" => 2,
"x" => 3,
"(" => 4,
"," => 5,
")" => 6,
"a" => 7,
"e" => 8,
"?" => 9,
"0" => 10,
"1" => 11,
"2" => 12 }
racc_nt_base = 13
racc_use_result_var = true
Racc_arg = [
racc_action_table,
racc_action_check,
racc_action_default,
racc_action_pointer,
racc_goto_table,
racc_goto_check,
racc_goto_default,
racc_goto_pointer,
racc_nt_base,
racc_reduce_table,
racc_token_table,
racc_shift_n,
racc_reduce_n,
racc_use_result_var ]
Racc_token_to_s_table = [
"$end",
"error",
"\"m\"",
"\"x\"",
"\"(\"",
"\",\"",
"\")\"",
"\"a\"",
"\"e\"",
"\"?\"",
"\"0\"",
"\"1\"",
"\"2\"",
"$start",
"m_x",
"op",
"expr",
"primary" ]
Racc_debug_parser = false
##### State transition tables end #####
# reduce 0 omitted
module_eval(<<'.,.,', 'yc1677.rb.y', 5)
def _reduce_1(val, _values, result)
result =
case val[1]
when 'a'
max(val[4], val[6])
when 'e'
mex(val[4], val[6])
when '?'
m_x(val[4], val[6])
end
result
end
.,.,
# reduce 2 omitted
# reduce 3 omitted
# reduce 4 omitted
module_eval(<<'.,.,', 'yc1677.rb.y', 18)
def _reduce_5(val, _values, result)
result = [1, 0, 0]
result
end
.,.,
module_eval(<<'.,.,', 'yc1677.rb.y', 19)
def _reduce_6(val, _values, result)
result = [0, 1, 0]
result
end
.,.,
module_eval(<<'.,.,', 'yc1677.rb.y', 20)
def _reduce_7(val, _values, result)
result = [0, 0, 1]
result
end
.,.,
module_eval(<<'.,.,', 'yc1677.rb.y', 21)
def _reduce_8(val, _values, result)
result = [1, 1, 1]
result
end
.,.,
# reduce 9 omitted
# reduce 10 omitted
def _reduce_none(val, _values, result)
val[0]
end
end # class Parser
S = gets.chomp
K = gets.to_i
parser = Parser.new(S)
res = parser.do_parse
puts res[K]