Module: AtCoderFriends::Generator::CxxBuiltinConstants

Included in:
CxxBuiltin
Defined in:
lib/at_coder_friends/generator/cxx_builtin.rb

Constant Summary collapse

ACF_HOME =
File.realpath(File.join(__dir__, '..', '..', '..'))
TMPL_DIR =
File.join(ACF_HOME, 'templates')
DEFAULT_TMPL =
File.join(TMPL_DIR, 'cxx_builtin_default.cxx')
INTERACTIVE_TMPL =
File.join(TMPL_DIR, 'cxx_builtin_interactive.cxx')
SCANF_FMTS =
[
  'scanf("%<fmt>s", %<addr>s);',
  'REP(i, %<sz1>s) scanf("%<fmt>s", %<addr>s);',
  'REP(i, %<sz1>s) REP(j, %<sz2>s) scanf("%<fmt>s", %<addr>s);'
].freeze
FMT_FMTS =
{ number: '%d', string: '%s', char: '%s' }.freeze
ADDR_FMTS =
{
  single: {
    number: '&%<v>s',
    string: '%<v>s'
  },
  harray: {
    number: '%<v>s + i',
    string: '%<v>s[i]',
    char: '%<v>s'
  },
  varray: {
    number: '%<v>s + i',
    string: '%<v>s[i]'
  },
  matrix: {
    number: '&%<v>s[i][j]',
    string: '%<v>s[i][j]',
    char: '%<v>s[i]'
  }
}.freeze
DEFAULT_OUTPUT =
"int ans = 0;\nprintf(\"%d\\\\n\", ans);\n"
BINARY_OUTPUT_FMT =
"bool cond = false;\nputs(cond ? \"%s\" : \"%s\");\n"