Submission #1198208

#TimeUsernameProblemLanguageResultExecution timeMemory
1198208agussKitchen (BOI19_kitchen)C++20
0 / 100
856 ms327680 KiB
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, m, k, sum = 0;
    cin >> n >> m >> k;
    vector<int> a(n), b(m);
    vector<map<int, int>> dp(m);
    for(int &i : a){
        cin >> i;
        sum += i;
    }
    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++){
        vector<int> aux;
        for(const auto &[x, y] : dp[i - 1]){
            aux.push_back(b[i] + x);
            aux.push_back(x);
        }
        for(const int &j : aux){
            dp[i][j] = 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 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...