Submission #1320647

#TimeUsernameProblemLanguageResultExecution timeMemory
1320647d_kKitchen (BOI19_kitchen)C++20
31 / 100
1094 ms412 KiB
							/*Bismillahir Rahmanir Raheem*/
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define F first
#define S second
#define pb push_back

const int inf = (1LL << 60);

void ma1n() {
	int n, m, k, tm = 0;
	cin>>n>>m>>k;
	vector<int> a(n + 1), b(m + 1);
	for(int i = 1; i <= n; i++) {
		cin>>a[i];
		tm += a[i];
		if(a[i] < k){
			cout<<"Impossible\n";
			return;
		}
	}
	for(int i = 1; i <= m; i++) cin>>b[i];
	if(k > m) {
		cout<<"Impossible\n";
		return;
	}
	int need = k * n; 
	int ans = inf;
	int n1 = (1LL << m);
	for(int mask = 0; mask < n1; mask++){
		int col = __builtin_popcount(mask);
		int sum = 0;
		int part = 0; 
		if(col < k) continue;
		for(int i = 0; i < m; i++){
			int bit = (1 << i);
			if(mask & bit){
				sum += b[i + 1];
				part += min(b[i + 1], n);
			}
//			cout<<mask<<" "<<i<<" "<<sum<<" chekc\n";
		}
		if (sum >= tm && part >= need) {
            ans = min(ans, sum - tm);
        }
	}
	if (ans == inf) cout << "Impossible\n";
    else cout << ans << "\n";
}

main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int T = 1;
//	cin>>T;
	while(T--) {
		ma1n();
	}
}

Compilation message (stderr)

kitchen.cpp:53:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   53 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...