제출 #745873

#제출 시각아이디문제언어결과실행 시간메모리
745873vjudge1Kitchen (BOI19_kitchen)C++17
0 / 100
0 ms212 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define mp make_pair #define pii pair<int, int> #define fi first #define se second void imp() { cout << "Impossible"; cout << "\n"; exit(0); } int n, m, k; vector<int> a, b; int sum_a; int try_4(int idx) { int pref = 0; for(int i = 0; i <= idx; i++) { pref += b[i]; } if(pref < sum_a) { return -1; } int sum1 = 0; for(int i = 0; i <= idx; i++) { sum1 += min(n, b[idx]); } if(sum1 < n * k) { return -1; } return pref - sum_a; } void solve() { cin >> n >> m >> k; a.resize(n), b.resize(m); for(int &x : a) { cin >> x; sum_a += x; } sort(a.begin(), a.end()); for(int &x : b) { cin >> x; } sort(b.begin(), b.end()); reverse(b.begin(), b.end()); for(int i = 0; i < n; i++) { if(a[i] < k) { imp(); } } int l = -1, r = m; bool possible = false; int result = -3210; while(l < r - 1) { int mid = (l + r) / 2; int res = try_4(mid); if(res != -1 && (result == -3210 || result > res)) { result = res; } if(res != -1) { r = mid; } else { l = mid; } } if(r == m) { imp(); } cout << result << "\n"; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); solve(); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

kitchen.cpp: In function 'void solve()':
kitchen.cpp:58:10: warning: unused variable 'possible' [-Wunused-variable]
   58 |     bool possible = false;
      |          ^~~~~~~~
#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...