Submission #1291370

#TimeUsernameProblemLanguageResultExecution timeMemory
1291370nathlol2Kitchen (BOI19_kitchen)C++20
9 / 100
1 ms576 KiB
#include <bits/stdc++.h>
using namespace std;

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n, m, k;
    cin >> n >> m >> k;
    int a[n], b[m], sm = 0, sma = 0;
    bool ooo = 0;
    for(int i = 0;i<n;i++){
        cin >> a[i];
        if(a[i] == 1) ooo = 1;
        sm += a[i];
        sma += a[i];
    }
    for(int i = 0;i<m;i++){
        cin >> b[i];
        sm -= b[i];
    }
    if(k > 2) return cout << "Impossible\n", 0;
    if(m == 1){
        if(k == 2) return cout << "Impossible\n", 0;
        if(b[0] >= sma) cout << b[0] - sma;
        else cout << "Impossible\n";
        return 0;
    }
    int ans = INT_MAX;
    if(k == 1){
        if(b[0] >= sma) ans = min(ans, b[0] - sma);
        if(b[1] >= sma) ans = min(ans, b[1] - sma);
        if(b[0] + b[1] >= sma) ans = min(ans, b[0] + b[1] - sma);
    }else{
        if(!ooo && b[0] + b[1] >= sma && (b[0] >= n && b[1] >= n)) ans = min(ans, b[0] + b[1] - sma);
    }
    if(ans == INT_MAX){
        cout << "Impossible";
    }else{
        cout << ans;
    }
}
#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...