#P10364. [PA 2024] Dzielniki

    ID: 14398 远端评测题 15000ms 1024MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>2024交互题Special JudgePA(波兰)

[PA 2024] Dzielniki

题目背景

PA 2024 5B1

题目描述

题目译自 PA 2024 Runda 5 Dzielniki

我们从区间 [1,n][1,n] 中选取了一个整数 xx,你的任务是猜这些数。你不必盲目地猜,可以问一些问题。每个问题你可以询问区间 [0,c][0,c] 中的某个整数 yy,我们会告诉你 x+yx+y 的因子个数。

为了让题目稍微困难一些,你需要在一次运行中解决 tt 个用例。询问总数被限制在 qq 次。

输入格式

在程序的开头你不应该使用 #include "dzilib.h" 引入交互库。

你需要实现如下函数来完成本题。

  • void Solve():程序只会调用此函数一次,在这个函数中,你需要实现猜测 tt 个用例的所有程序逻辑。

你可以调用如下函数。

  • int GetT():返回 tt 的值。
  • long long GetN():返回 nn 的值。
  • int GetQ():返回 qq 的值。
  • long long GetC():返回 cc 的值。
  • int Ask(long long y):返回要猜的数 xxyy 的和的因子个数。你需要保证 0yc0\le y\le c
  • void Answer(long long x):做出一次回答。此函数无返回值。

如果你调用 Ask() 函数的总次数超过 qq,则你的程序会被判为 Wrong Answer。如果存在一次调用 Answer() 函数,你猜测的数与答案不同,你的程序也会被判为 Wrong Answer

提示

数据范围

子任务编号 tt nn qq cc
11 5050 10510^5 5000050000 101210^{12}
22 10610^6 50005000
33 1010 10910^9 5000050000
44 101410^{14} 50005000 101710^{17}
55 20002000
66 13001300
77 950950
88 820820
99 750750
1010 720720