Submission #125935

#TimeUsernameProblemLanguageResultExecution timeMemory
125935mechfrog88Kitchen (BOI19_kitchen)C++14
9 / 100
2 ms380 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC optimize("unroll-loops,no-stack-protector") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") using namespace __gnu_pbds; using namespace std; template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; typedef long long ll; typedef long double ld; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); ll n,m,k; cin >> n >> m >> k; vector <ll> arr(n); for (int z=0;z<n;z++){ cin >> arr[z]; } vector <ll> chef(m); for (int z=0;z<m;z++){ cin >> chef[z]; } vector <ll> ori; ori = chef; sort(chef.begin(),chef.end()); if (m < k) { cout << "Impossible" << endl; return 0; } ll s = 0; for (int z=0;z<n;z++){ s += arr[z]; if (arr[z] < k){ cout << "Impossible" << endl; return 0; } } if (k == 2){ cout << chef[0]+chef[1]-s << endl; } else if (chef.size() == 1){ if (s > chef[0]){ cout << "Impossible" << endl; } else { cout << chef[0]-s; } } else { if (s <= min(chef[0],chef[1])){ cout << min(chef[0],chef[1])-s << endl; } else if (s <= max(chef[0],chef[1])){ cout << max(chef[0],chef[1])-s << endl; } else if (s <= chef[0]+chef[1]){ cout << chef[0]+chef[1]-s << endl; } else { cout << "Impossible" << endl; } } }
#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...