답안 #423328

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
423328 2021-06-11T00:30:16 Z abdzag Kitchen (BOI19_kitchen) C++17
31 / 100
804 ms 262148 KB
#include<bits/stdc++.h>
#include<unordered_map>
#define rep(i,a,b) for(int i=int(a);i<int(b);i++)
#define rrep(i,a,b) for(int i=int(a);i>int(b);i--)
#define trav(a,v) for(auto& a: v)
#define sz(v) v.size()
#define all(v) v.begin(),v.end()
#define vi vector<int>

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const long long inf = 1e15;

using namespace std;
int main() {
	cin.sync_with_stdio(false);
	ll n, m, k;
	cin >> n >> m >> k;
	vector<ll> v(n);
	vector<ll> v2(m);
	rep(i, 0, n) {
		cin >> v[i];
		if (v[i] < k) {
			cout << "Impossible" << endl;
			return 0;
		}
	}
	rep(i, 0, m)cin >> v2[i];
	ll sum = 0;
	rep(i, 0, n)sum += v[i];
	sort(all(v2), greater<>());
	vector < pair<ll, pair<ll, ll>>>dp0;
	dp0.emplace_back(0, make_pair(0, 0));
	vector<pair<ll, pair<ll, ll>>> dp = dp0;
	ll ans = inf;
	rep(i, 0, m) {
		trav(a, dp0) {
			if (a.second.second >= 0 && a.second.first >= k && a.first >= sum) {
				ans = a.first ;
				break;
			}
			pair<ll, pair<ll, ll>> cur = a;
			cur.first += v2[i];
			cur.second.first++;
			if (cur.second.first > k)cur.second.second += v2[i];
			else if(v2[i]<n)cur.second.second-=n-v2[i];
			dp.push_back(cur);
		}
		sort(all(dp));
		unique(all(dp));
		dp0 = dp;
	}
	trav(a, dp) {
		if (a.second.second >= 0 && a.second.first >= k && a.first >= sum) {
			ans = min(ans, a.first);
		}
	}
	if (ans == inf)cout << "Impossible" << endl;
	else cout << ans - sum << endl;
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 3 ms 1040 KB Output is correct
10 Correct 1 ms 460 KB Output is correct
11 Correct 7 ms 2368 KB Output is correct
12 Correct 4 ms 1032 KB Output is correct
13 Correct 2 ms 884 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 804 ms 262148 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 717 ms 262148 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 3 ms 1040 KB Output is correct
10 Correct 1 ms 460 KB Output is correct
11 Correct 7 ms 2368 KB Output is correct
12 Correct 4 ms 1032 KB Output is correct
13 Correct 2 ms 884 KB Output is correct
14 Runtime error 804 ms 262148 KB Execution killed with signal 9
15 Halted 0 ms 0 KB -