제출 #729074

#제출 시각아이디문제언어결과실행 시간메모리
729074WonderfulWhaleKitchen (BOI19_kitchen)C++17
100 / 100
34 ms1032 KiB
#include<bits/stdc++.h>
using namespace std;

#define int int64_t
#define pb push_back
#define st first
#define nd second
#define pii pair<int, int>
#define all(x) (x).begin(), (x).end()
#define sz(x) (int)(x).size()

int dp[90009];

int32_t main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	for(int i=0;i<=300*300;i++) dp[i] = -1e18;
	dp[0] = 0;

	int n, m, k;
	cin >> n >> m >> k;
	int sum = 0;
	for(int i=0;i<n;i++) {
		int x;
		cin >> x;
		if(x<k) {
			cout << "Impossible\n";
			return 0;
		}
		sum+=x;
	}
	for(int i=0;i<m;i++) {
		int x;
		cin >> x;
		for(int j=300*300;j>=0;j--) {
			if(j+x<=300*300) {
				dp[j+x] = max(dp[j+x], dp[j]+min(n, x));
			}
		}
	}
	for(int i=sum;i<=300*300;i++) {
		if(dp[i]>=n*k) {
			cout << i-sum << "\n";
			return 0;
		}
	}
	cout << "Impossible\n";
}

#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...