Submission #125910

# Submission time Handle Problem Language Result Execution time Memory
125910 2019-07-06T14:08:37 Z mechfrog88 Kitchen (BOI19_kitchen) C++14
0 / 100
2 ms 376 KB
#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 time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -