P10364 [PA 2024] Dzielniki

题目背景

PA 2024 5B1

题目描述

**题目译自 [PA 2024](https://sio2.mimuw.edu.pl/c/pa-2024-1/dashboard/) Runda 5 [Dzielniki](https://sio2.mimuw.edu.pl/c/pa-2024-1/p/dzi/)** 我们从区间 $[1,n]$ 中选取了一个整数 $x$,你的任务是猜这些数。你不必盲目地猜,可以问一些问题。每个问题你可以询问区间 $[0,c]$ 中的某个整数 $y$,我们会告诉你 $x+y$ 的因子个数。 为了让题目稍微困难一些,你需要在一次运行中解决 $t$ 个用例。询问总数被限制在 $q$ 次。

输入格式

在程序的开头你**不应该**使用 `#include "dzilib.h"` 引入交互库。 你需要实现如下函数来完成本题。 - `void Solve()`:程序只会调用此函数一次,在这个函数中,你需要实现猜测 $t$ 个用例的所有程序逻辑。 你可以调用如下函数。 - `int GetT()`:返回 $t$ 的值。 - `long long GetN()`:返回 $n$ 的值。 - `int GetQ()`:返回 $q$ 的值。 - `long long GetC()`:返回 $c$ 的值。 - `int Ask(long long y)`:返回要猜的数 $x$ 与 $y$ 的和的因子个数。你需要保证 $0\le y\le c$。 - `void Answer(long long x)`:做出一次回答。此函数无返回值。 如果你调用 `Ask()` 函数的总次数超过 $q$,则你的程序会被判为 `Wrong Answer`。如果存在一次调用 `Answer()` 函数,你猜测的数与答案不同,你的程序也会被判为 `Wrong Answer`。

输出格式

说明/提示

#### 数据范围 | 子任务编号 | $t$ | $n$ | $q$ | $c$ | |:-:|:-:|:-:|:-:|:-:| | $1$ | $50$ | $10^5$ | $50000$ | $10^{12}$ | | $2$ | $50$ | $10^6$ | $5000$ | $10^{12}$ | | $3$ | $10$ | $10^9$ | $50000$ | $10^{12}$ | | $4$ | $10$ | $10^{14}$ | $5000$ | $10^{17}$ | | $5$ | $10$ | $10^{14}$ | $2000$ | $10^{17}$ | | $6$ | $10$ | $10^{14}$ | $1300$ | $10^{17}$ | | $7$ | $10$ | $10^{14}$ | $950$ | $10^{17}$ | | $8$ | $10$ | $10^{14}$ | $820$ | $10^{17}$ | | $9$ | $10$ | $10^{14}$ | $750$ | $10^{17}$ | | $10$ | $10$ | $10^{14}$ | $720$ | $10^{17}$ |