#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m,k,trabajo=0; cin>>n>>m>>k;
if(m<k){
cout<<"Impossible"<<"\n";
return 0;
}
vector<int> a(n),b(m);
for(int i=0;i<n;i++){
cin>>a[i];
trabajo+=a[i];
}
for(int i=0;i<m;i++){
cin>>b[i];
}
vector<vector<int> > matriz;
matriz.assign(2, vector<int> (trabajo+1, 90001));
matriz[0][0]=0;
for(int i=m-1;i>-1;i--){
swap(matriz[0], matriz[1]);
for(int j=0;j<=trabajo;j++){
matriz[0][j]=matriz[1][j];
if(j-b[i]>-1){
matriz[0][j]=min(matriz[1][j],matriz[1][j+b[i]]);
}else{
matriz[0][j]=min(matriz[0][j],b[i]-j);
}
}
}
if(matriz[0][trabajo]==90001){
cout<<"Impossible"<<"\n";
}else{
cout<<matriz[0][trabajo];
}
}
# | 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... |