P11382 [POI 2024/2025 R1] Kasyno(交互,无法评测)
题目背景
官方交互库在附件里,但是我不会改。
原题译自 [POI 2024/2025 R1 Kasyno](https://sio2.mimuw.edu.pl/c/oi32-1/p/kas/)。
题目描述
Bajtazar 有一个机器,一开始它会选择在 $1 \sim n$ 之前等概率选择一个数 $x$,并且 Bajtazar 有三种操作可以选择。
1. 选择一个数 $y\ (1 \leq y \leq n)$,这会返回 $\gcd(x,y)$。
2. 重新在 $1\sim n$ 等概率选择一个数字 $x$。
3. 猜测一个数字 $y$,如果正确则开始一局新的游戏,否则退出游戏。
无论如何,上述操作都会消耗一个游戏币,并且重复执行上述操作直到游戏币使用了 $10^7$ 个或选择了猜测并猜测错误。
输入格式
你需要帮助 Bajtazar 完成操作。
在 `kaslib.h` 中有如下函数可以使用。
```cpp
long long DajN()
long long Pytaj(long long y)
void Szturchnij()
void Odpowiedz(long long y)
```
作用分别如下:
- `DajN()` 返回常数 $n=10^{18}$,这对解题并无影响,但或许会提供帮助。
- `Pyatj(long long y)` 返回 $\gcd(x,y)$。
- `Szturchnij()` 重新选择一个 $x$。
- `Odpowiedz(long long y)` 表示你的答案 $y$。
输出格式
无。
说明/提示
| 选手 | 交互库 | 解释 |
| :----------- | :----------- | :----------- |
| $/$ | $/$ | 此时选择了一个 $x=7$ 的初始数字 |
| `Pytaj(9)` | $1$ | $\gcd(7,9)=1$ |
| `Szturchnij()` | $/$ | 此时在 $1 \sim n$ 中重新随机了 $x=6$ |
| `Pytaj(2)` | $2$ | $\gcd(6,2)=2$ |
| `Pytaj(3)` | $3$ | $\gcd(6,3)=3$ |
| `Odpowiedz(6)` | $/$ | 获胜。 |
对于每个测试点,如果说你猜对了 $w$ 次,那么就可以得到这个测试点的百分之 $\lfloor 100 \cdot \frac{\log(1+\min(2000,w))}{\log(1+2000)} \rfloor$ 分。
一共有十个测试点。