Submission #921119

# Submission time Handle Problem Language Result Execution time Memory
921119 2024-02-03T10:27:33 Z shoryu386 Kitchen (BOI19_kitchen) C++17
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>
using namespace std;
 
#define int long long
 
main(){
	ios_base::sync_with_stdio(0); cin.tie(0);
	
	int n, m, k; cin >> n >> m >> k;
	
	int buckets[n], balls[m];
	
	for (int x = 0; x < n; x++) cin >> buckets[x];
	for (int x = 0; x < m; x++) cin >> balls[x];
	
	#define IMP cout << "Impossible"; return 0;
	
	bool dead = false;
	for (int x = 0; x < n; x++){
		if (buckets[x] < k){
			dead = true;
		}
	}
	if (dead) {IMP;}
	
	int bucketsum = 0;
	for (int x = 0; x < n; x++){
		bucketsum += buckets[x];
	}
	
	
	#define BSMAX 100000
	bitset<BSMAX> hmm[n*k+1];
	
	hmm[n*k][0] = 1;
	sort(balls, balls+m, greater<int>());
	
	int sum = 0, ssum[m];
	for (int x = m-1; x > -1; x--){
		sum += balls[x];
		ssum[x] = sum;
	}
	
	sum = 0; int psum[m];
	for (int x = 0; x < n; x++){
		sum += balls[x];
		psum[x] = sum;
	}
	
	for (int z = n*k; z <= min(n*k, ssum[0]); z++){
		hmm[max(0LL, z - min(balls[x], n))] |= (hmm[z] << balls[x]);
	}
	
	for (int x = 1; x < m; x++){
		for (int z = n*k - psum[x-1]; z <= min(n*k, ssum[x]); z++){
			hmm[max(0LL, z - min(balls[x], n))] |= (hmm[z] << balls[x]);
		}
	}
	int ans = -1;
	for (int x = bucketsum; x < BSMAX; x++){
		if (hmm[0][x]){
			ans = x-bucketsum;
			break;
		}
	}
		
	if (ans == -1) cout << "Impossible";
	else cout << ans;
	
}

Compilation message

kitchen.cpp:6:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    6 | main(){
      | ^~~~
kitchen.cpp: In function 'int main()':
kitchen.cpp:51:30: error: 'x' was not declared in this scope
   51 |   hmm[max(0LL, z - min(balls[x], n))] |= (hmm[z] << balls[x]);
      |                              ^