记录编号 601971 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 3947.[国家集训队 2011]等差子序列 最终得分 100
用户昵称 GravatarLikableP 是否通过 通过
代码语言 C++ 运行时间 1.463 s
提交时间 2025-06-29 19:29:48 内存使用 1.42 MiB
显示代码纯文本
#include <bitset>
#include <cstdio>

template <typename T> T read();

const int MAXN = 1e4 * 2 + 1;
const int OFFSET = 1e4 + 1;

::std::bitset<MAXN> b1, b2;
int T, n;
bool flag;

int main() {
  freopen("sequence.in", "r", stdin);
  freopen("sequence.out", "w", stdout);
  T = read<int>();
  while (T--) {
    n = read<int>();
    flag = false;
    b1.reset(), b2.reset();
    for (int i = 1; i <= n; ++i) {
      int x = read<int>();
      if (b1[x]) flag = true;
      b1 = b1 | ((b2 << (x << 1)) >> OFFSET);
      b2[OFFSET - x] = 1;
    }
    if (flag) puts("Y");
    else puts("N");
  }
  return 0;
}

#define isdigit(ch) (ch >= '0' && ch <= '9')
template <typename T> T read() {
  T res = 0, f = 1;
  char ch = getchar();
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') f = -1;
  for (; isdigit(ch); ch = getchar()) res = (res << 3) + (res << 1) + (ch ^ 48);
  return res * f;
}