제출 #1198212

#제출 시각아이디문제언어결과실행 시간메모리
1198212agussKitchen (BOI19_kitchen)C++20
0 / 100
883 ms327680 KiB
#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 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...