AT_abc403_f [ABC403F] Shortest One Formula
题目描述
[problemUrl]: https://atcoder.jp/contests/abc403/tasks/abc403_f
给定一个正整数 $N$。
请找出由字符 `1`、`+`、`*`、`(`、`)` 组成的数学表达式中,满足以下所有条件的最短表达式 $S$:
1. $S$ 符合以下 [BNF 语法](https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%82%AB%E3%82%B9%E3%83%BB%E3%83%8A%E3%82%A6%E3%82%A2%E8%A8%98%E6%B3%95) 中 `` 符号的定义
2. $S$ 表示的数学表达式计算结果等于 $N$
BNF 语法定义如下:
```
::= | "+"
::= | "*"
::= | "(" ")"
::= "1" | "1"
```
符合 `` 定义的表达式示例:
- `1111+111`:表示 $1111+111$
- `(1+1)*(1+1)`:表示 $(1+1)\times (1+1)$
- `(11+(1+1)*(1+1))+1`:表示 $(11+(1+1)\times (1+1))+1$
不符合 `` 定义的表达式示例:
- `(1+1)(1+1)`
- `1+2`
- `1-1`
- `1/1`
- `)1(`
- `1++1`
- `+1`
- `(+1)`
- `1*+1`
输入格式
输入通过标准输入给出,格式如下:
> $N$
输出格式
输出满足条件的最短表达式。
说明/提示
### 约束条件
- $1 \leq N \leq 2000$
- 输入均为整数
### 样例解释 #1
值为 $9$ 的表达式可能有多种形式,例如:
- `(1+1+1)*(1+1+1)`
- `1+1+1+1+1+1+1+1+1`
- `(1+1)*(1+1)*(1+1)+1`
其中 `(1+1+1)*(1+1+1)` 是最短的表达式。
翻译由 DeepSeek V3 完成