#P7704. 「MCOI-09」Greedy Deletion

「MCOI-09」Greedy Deletion

题目描述

小于等于 nn 的正整数形成集合 Sn={1,2,…,n}S_n=\{1,2,\dots,n\}。

删除值为 ii 的元素代价为 iki^k,其中每一个元素至多被删一次。

给定正整数 nn 和 kk,求:最小代价使 SnS_n 乘积变为完全平方数是什么?答案对 998244353998244353 取模。

注意你需要求最小代价,模 998244353998244353,而不是模 998244353998244353 后的代价的最小值。

你需要回答 TT 组询问,其中所有 kk 相同。

输入格式

第一行三个正整数 TT,kk,max⁡n\max n,分别表示询问数量,给定 kk,以及最大 nn。

接下来 TT 行,每行一个正整数 nn。

输出格式

输出 TT 行,第 ii 行输出第 ii 组数据的答案。

2 2 6
1
6
0
25

提示

样例 1 解释

对于 n=1n=1,S1S_1 乘积为完全平方数,不需要删除。

对于 n=6n=6,可以删除 55 使得 S6S_6 乘积变为完全平方数。

数据规模与约定

  • Subtask 1(7 pts):max⁡n≤20\max n\le 20。
  • Subtask 2(37 pts):max⁡n≤1000\max n\le 1000。
  • Subtask 3(11 pts):T≤1000T\le 1000。
  • Subtask 4(45 pts):无额外限制。

对于 100%100\% 的数据,1≤max⁡n≤5×1061\le \max n\le 5\times 10^6,1≤T≤5×1051\le T\le 5\times 10^5,1≤k<9982443531\le k< 998244353。

保证 1≤n≤max⁡n1\le n\le \max n。