{"problem":{"name":"[信息与未来 2023] 程序分析","description":{"content":"程序分析技术是一种用于理解和改进计算机程序的方法。它可以帮助我们找出程序中的错误、提高程序的性能、优化代码结构等。其中，静态分析技术在不运行程序的情况下对程序代码进行分析。它可以检查代码的语法、风格、潜在错误等。例如，静态分析可以帮助我们找出程序中未使用的变量、可能的数组越界等问题。 小小设计了一个自己的编程语言，并命名为 X 语言。你能为它设计一个静态分析器吗？ X 语言程序中只有两个整型变","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":131072},"difficulty":{"LuoguStyle":"P3"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGB3789"},"statements":[{"statement_type":"Markdown","content":"程序分析技术是一种用于理解和改进计算机程序的方法。它可以帮助我们找出程序中的错误、提高程序的性能、优化代码结构等。其中，静态分析技术在不运行程序的情况下对程序代码进行分析。它可以检查代码的语法、风格、潜在错误等。例如，静态分析可以帮助我们找出程序中未使用的变量、可能的数组越界等问题。\n\n小小设计了一个自己的编程语言，并命名为 X 语言。你能为它设计一个静态分析器吗？\n\nX 语言程序中只有两个整型变量 $x$ 和 $y$，且无需定义，可以直接使用。变量 $x$ 的值从程序外输入（输入值可以是任何 C++ int 范围内的值），$y$ 的初始值是 $0$。一个 X 语言程序由若干行组成，每行恰好包含一条命令，是以下三种命令之一：\n1. 条件分支：`if (条件) {`；\n2. 对 $y$ 赋值：`y = 数字;`；\n3. 条件结束：`}`。\n\n其中，“条件”要么是 `x > 数字`，要么是 `x < 数字`。赋值语句和条件中的“数字”都是 $1$ 到 $10^9$ 之间的常数。`if` 和赋值的含义同 C++ 语言中的条件和赋值语句。\n\n请你编写一个静态分析器，分析一个 X 语言程序执行结束时，所有可能的 $y$ 的值。\n\n## Input\n\n输入数据第一行为整数 $n$，代表程序的行数。\n\n接下来 $n$ 行，每行一个命令，描述了一个合法的 X 语言程序：输入的程序保证括号配对，且符合问题描述中的约定。为了便于大家解析 (例如用 `cin` 或 `scanf` 读入)，输入程序中的 `if` 后、`{` 前、`=`、`<`、`>` 左右都恰好有一个空格，行首可能有若干空格缩进。除此之外，输入不含多余的空格或空白字符。\n\n## Output\n\n输出一行，从小到大不重复地输出程序结束时，变量 $y$ 所有可能的值。数字之间由一个空格隔开。\n\n[samples]\n\n## Note\n\n对于 $100\\%$ 的数据，满足 $1\\le n \\le 10^3$。输入数据的每行都不超过 $10^3$ 个字符。\n\n>本题原始满分为 $20\\text{pts}$。","is_translate":false,"language":"English"}],"meta":{"iden":"LGB3789","tags":["模拟","递归","2023","江苏","信息与未来"],"sample_group":[["10\nif (x > 1) {\n  y = 2;\n  if (x > 10) {\n    y = 1;\n    y = 4;\n    if (x < 5) {\n      y = 3;\n    }\n  }\n}","0 2 4"],["(见 p4.zip 中的 2-in.txt)","(见 p4.zip 中的 2-out.txt)"],["(见 p4.zip 中的 3-in.txt)","(见 p4.zip 中的 3-out.txt)"]],"created_at":"2026-03-03 11:09:25"}}