제출 #382586

#제출 시각아이디문제언어결과실행 시간메모리
382586ritul_kr_singhKitchen (BOI19_kitchen)C++17
21 / 100
20 ms876 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define sp << " " <<
#define nl << "\n"

//total <, min < k

signed main(){
	cin.tie(0)->sync_with_stdio(0);
	int n, m, k; cin >> n >> m >> k;
	int a[n], b[m];
	for(int &i : a) cin >> i;
	for(int &i : b) cin >> i;

	int x = accumulate(b, b+m, 0LL);
	int y = accumulate(a, a+n, 0LL);
	vector<int> dp(x+1, 0);

	for(int i=0; i<m; ++i){
		for(int j=x; j>=b[i]; --j){
			dp[j] = max(dp[j], dp[j-b[i]] + min(n, b[i]));
		}
	}

	if(*min_element(a, a+n)>=k){
		for(int i=y; i<=x; ++i){
			if(dp[i]>=k*n){
				cout << i-y;
				return 0;
			}
		}
	}
	cout << "Impossible";
}
#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...