#ifdef NACHIA #define _GLIBCXX_DEBUG #else #define NDEBUG #endif #include #include #include #include using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(int i=0; i void chmin(A& l, const A& r){ if(r < l) l = r; } template void chmax(A& l, const A& r){ if(l < r) l = r; } #include #include #include namespace nachia{ template void CallWithConstexprFittingInt(TargetInt val, const Callback& callback){ if(Max / 2 < val || Max / 2 < Min){ callback(std::integral_constant()); return; } CallWithConstexprFittingInt(val, callback); } } using Modint = atcoder::static_modint<998244353>; using namespace std; void testcase(){ int N; cin >> N; vector A(N); rep(i,N) cin >> A[i]; int Z = 0; for(auto a : A) Z += a; int ans = -1; nachia::CallWithConstexprFittingInt(Z/2+1, [&](auto X){ constexpr int x = X.value; using Set = bitset; Set dp; Set res; dp.set(0); for(int a : A){ Set nx = dp; nx <<= a; res |= nx & dp; dp |= nx; } for(int i=0; i