제출 #1171417

#제출 시각아이디문제언어결과실행 시간메모리
1171417fryingducKpart (eJOI21_kpart)C++20
0 / 100
2092 ms480 KiB
#include "bits/stdc++.h"

using namespace std;

#ifdef duc_debug
#include "bits/debug.h"
#else
#define debug(...)
#endif

const int maxn = 1005;
const int N = 1e5 + 5;
int n, a[maxn];
bitset<N> bs, emp;

void solve() {
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    cin >> a[i];
  }
  vector<int> res;
  for (int k = 2; k <= n; ++k) {
    bs &= emp;
    bs[0] = 1;
    int sum = 0;
    for (int i = 1; i < k; ++i) {
      bs |= (bs << a[i]);
      sum += a[i];
    }
    bool flag = 1;
    for (int i = k; i <= n; ++i) {
      if (i - k > 0) {
        sum -= a[i - k];
        bs &= (bs >> a[i - k]);
      }
      sum += a[i];
      bs |= (bs << a[i]);
      if (sum & 1 || !bs.test(sum / 2)) {
        flag = 0;
        break;
      }
    }
    if (flag) {
      res.push_back(k);
    }
  }
  cout << (int)res.size() << " ";
  for (auto i : res) cout << i << " ";
  cout << '\n';
}

signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  
  int tt; cin >> tt;
  while (tt--) {
    solve();
  }

  return 0;
}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...