#luoguP8961. 「WHOI-4」ggcd
「WHOI-4」ggcd
题目背景
如何输入输出 __int128:
__int128 read() {
  char c = getchar();
  __int128 x = 0;
  bool f = 0;
  for (; !isdigit(c); c = getchar()) f ^= !(c ^ 45);
  for (; isdigit(c); c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
  if (f) x = -x;
  return x;
}
void write(__int128 x, char c = '\0') {
  if (x < 0) putchar('-'), x = -x;
  if (x > 9) write(x / 10);
  putchar(x % 10 + '0');
  if (c != '\0') putchar(c);
}
题目描述
本题已新增一组样例,请注意查看。
小 Y 给了你长度为 的数组 以及一个正整数 ,保证 ,请你构造一个同样长为 的数组 ,使得:
-  在 
__int128范围内; - ;
 - 最大。
 
注意, 可以为负,此时 且 。
输入格式
第一行两个正整数 。
接下来一行 个非负整数,代表 的值。
输出格式
第一行一个非负整数 ,代表 的可能最大值。
接下来一行 个整数,代表 。
1 10
4
6
-6
1 10
7
7
7
2 9
3 3
6
12 -6
10 7
1 2 3 4 5 6 0 1 2 3
6
36 30 24 18 12 6 42 -6 30 24
提示
数据范围
本题采用捆绑测试。
Subtask 1( pts): 是素数。
Subtask 2( pts):无特殊限制。
对于所有数据,保证 ,。
关于 Special Judge
对于每个测试点:
如果你输出的格式不正确,你将会获得 分。
如果你输出的数中有不在 __int128 范围的数,可能导致溢出所以你可能无法获得预期的分数。
如果你的数列 不符合题目给定的 ,你将会获得 分。
如果你的数列 不符合你输出的 ,你将会获得 分。
如果你的 不为最大,你将会获得 分。
否则你将获得该测试点的所有分数。