Submission #1198874

#TimeUsernameProblemLanguageResultExecution timeMemory
1198874arielcruz2Kitchen (BOI19_kitchen)C++20
20 / 100
20 ms1292 KiB
#include <bits/stdc++.h>

using namespace std;

int main(){
    int n,m,k,trabajo=0,horas=0; cin>>n>>m>>k;
    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];
        horas+=b[i];
    }
    if(horas<trabajo){
        cout<<"Impossible"<<"\n";
        return 0;
    }
    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]<<"\n";
    }
    return 0;
}
#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...