[信息与未来 2023] 程序分析

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