#include <bits/stdc++.h>
using namespace std;
int main(){
int n, m, k, sum = 0;
cin >> n >> m >> k;
vector<int> b(m);
vector<map<int, int>> dp(m);
for(int i = 0; i < n; i++){
int aux;
cin >> aux;
sum += aux;
}
for(int &i : b){
cin >> i;
}
sort(b.begin(), b.end());
for(int i = 0; i < m; i++){
dp[i][b[i]] = 1;
}
for(int i = 1; i < m; i++){
for(const auto &[x, y] : dp[i - 1]){
dp[i][b[i] + x] = 1;
dp[i][x] = 1;
}
}
map<int, int>::iterator c = dp[m - 1].lower_bound(sum);
if(c == dp[m - 1].end()){
cout << "Impossible";
return 0;
}
int x = c->first;
cout << x - sum;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |