제출 #1291367

#제출 시각아이디문제언어결과실행 시간메모리
1291367nathlol2Kitchen (BOI19_kitchen)C++20
0 / 100
1 ms572 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;
    for(int i = 0;i<n;i++){
        cin >> a[i];
        sm += a[i];
        sma += a[i];
    }
    for(int i = 0;i<m;i++){
        cin >> b[i];
        sm -= b[i];
    }
    if(sm > 0 || k > 2) return cout << "Impossible\n", 0;
    if(m == 1){
        if(k > 1) 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(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...