Submission #1198843

#TimeUsernameProblemLanguageResultExecution timeMemory
1198843agussKitchen (BOI19_kitchen)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, m, k, sum = 0;
    cin >> n >> m >> k;
    vector<int> dp, b(m);
    bool t = false;
    for(int i = 0; i < n; i++){
        int aux;
        cin >> aux;
        if(aux < k) t = 1;
        sum += aux;
    }
    if(t) {
        cout << "Impossible";
        return 0;
    }
    for(int &i : b){
        cin >> i;
    }
    if(m < k){
        cout << "Impossible";
        return 0;
    }
    if(m == 1){
        if(b[0] < sum){
            cout << "Impossible";
            return 0;
        }
        cout << b[0] - sum;
        return 0;
    }
    if(k == 2){
        if(b[0] < n or b[1] < n){
            cout << "Impossible";
            return 0;
        }
        if(b[0] + b[1] < sum){ 
            cout << "Impossible";
            return 0;
        }
        cout << b[0] + b[1] - sum;
        return 0;
    }
    vector<int>::iterator x = lower_bound(b.begin(), b.end(), sum);
    if(x == b.end()){
        cout << "Impossible";
        return 0;
    } 
    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...