#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |