Submission #582475

# Submission time Handle Problem Language Result Execution time Memory
582475 2022-06-23T22:11:54 Z 1ne Bank (IZhO14_bank) C++14
52 / 100
1000 ms 61840 KB
#include<bits/stdc++.h>
using namespace std;

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int n,m;cin>>n>>m;
	vector<int>arr(n);
	for (int i = 0;i<n;++i)cin>>arr[i];
	vector<int>brr(m);
	for (int i = 0 ;i<m;++i)cin>>brr[i];
	sort(brr.begin(),brr.end());
	vector<vector<int>>pos(n);
	for (int i = 0;i < (1<<m);++i){
		vector<int>cur;
		for (int j = 0;j<m;++j){
			if (i & (1<<j)){
				cur.push_back(brr[j]);
			}
		}
		unordered_map<int,int>c;
		c[0] = true;
		for (auto x:cur){
			unordered_map<int,int>nex;
			for (auto y:c){
				if (y.first + x <=1000){
					nex[y.first + x] = true;
				}
			}
			swap(nex,c);
		}
		for (int j = 0;j<n;++j){
			if (c[arr[j]]){
				pos[j].push_back(i);
			}
		}
	}
	vector<vector<int>>dp(n,vector<int>((1<<20),-1));
	function<bool(int,int)>solve = [&](int u,int mask){
		if (u == n)return 1;
		if (dp[u][mask]!=-1)return dp[u][mask];
		int ans = 0;
		for (auto x:pos[u]){
			if ((mask & x))continue;
			ans|=solve(u + 1,(mask | x));
		}
		return dp[u][mask] = ans;
	};
	bool ans = solve(0,0);
	if (ans){
		cout<<"YES\n";
	}
	else cout<<"NO\n";
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 8532 KB Output is correct
2 Correct 5 ms 8532 KB Output is correct
3 Correct 6 ms 8528 KB Output is correct
4 Correct 39 ms 8496 KB Output is correct
5 Execution timed out 1075 ms 212 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 11 ms 20804 KB Output is correct
2 Correct 9 ms 16700 KB Output is correct
3 Correct 8 ms 12628 KB Output is correct
4 Correct 11 ms 20792 KB Output is correct
5 Correct 16 ms 33132 KB Output is correct
6 Correct 14 ms 24904 KB Output is correct
7 Correct 10 ms 16724 KB Output is correct
8 Correct 11 ms 20820 KB Output is correct
9 Correct 12 ms 16724 KB Output is correct
10 Correct 14 ms 24916 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 40 ms 33076 KB Output is correct
2 Correct 23 ms 16644 KB Output is correct
3 Correct 36 ms 45376 KB Output is correct
4 Correct 50 ms 61840 KB Output is correct
5 Correct 42 ms 45388 KB Output is correct
6 Correct 25 ms 24916 KB Output is correct
7 Correct 26 ms 20828 KB Output is correct
8 Correct 23 ms 16696 KB Output is correct
9 Correct 33 ms 37204 KB Output is correct
10 Correct 44 ms 37260 KB Output is correct
11 Correct 48 ms 61832 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 8532 KB Output is correct
2 Correct 5 ms 8532 KB Output is correct
3 Correct 6 ms 8528 KB Output is correct
4 Correct 39 ms 8496 KB Output is correct
5 Execution timed out 1075 ms 212 KB Time limit exceeded
6 Halted 0 ms 0 KB -