Submission #125910

#TimeUsernameProblemLanguageResultExecution timeMemory
125910mechfrog88Kitchen (BOI19_kitchen)C++14
0 / 100
2 ms376 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]; } if (m < k) { cout << "Impossible" << endl; return 0; } for (int z=0;z<n;z++){ if (arr[z] < k){ cout << "Impossible" << endl; return 0; } } ll left = 0; ll c = 0; while (c < n){ ll temp = 0; for (int z=0;z<k;z++){ while (chef[z] == 0){ z++; } chef[z]--; temp++; } if (temp < k){ cout << "Impossible" << endl; return 0; } left += arr[c]-k; c++; } ll ans = 0; for (int z=0;z<m;z++){ ans += chef[z]; } if (left > ans){ cout << "Impossible" << endl; } else { cout << ans-left << 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...