QOJ.ac

QOJ

ID提交记录ID题目HackerOwner结果提交时间测评时间
#592#364211#7403. Subset Sum5sbieeFailed.2024-04-10 20:33:242024-04-10 20:33:24

详细

Extra Test:

Invalid Input

input:



output:


result:

FAIL Unexpected white-space - token expected (stdin, line 1)

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#364211#7403. Subset SumieeWA 364ms4220kbC++23759b2024-03-24 13:02:202024-04-10 20:34:13

answer

#include <bits/stdc++.h>
using namespace std;
void solve() {
	int n, c;
	cin >> n >> c;
	vector<int> a(n);
	for (int &x : a) {
		cin >> x;
	}
	sort(a.begin(), a.end());
	int w = 0;
	for (int &x : a) {
		if (x <= c) {
			c -= x;
			w += x;
			x *= -1;
		}
	}
	static mt19937 eng(chrono::steady_clock::now().time_since_epoch().count());
	constexpr int N = 4e5 + 5;
	bitset<N + N> f;
	f[N] = 1;
	shuffle(a.begin(), a.end(), eng);
	for (int x : a) {
		if (x > 0) f |= f << x;
		else f |= f >> -x;
	}
	c = min(c, N - 1);
	for (int i = N + c; ; i--) {
		if (f[i]) {
			cout << i - N + w << "\n";
			return;
		}
	}
}
int main() {
	cin.tie(0)->sync_with_stdio(0);
	int t;
	cin >> t;
	while (t--) {
		solve();
	}
	return 0;
}