답안 #1108226

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1108226 2024-11-03T11:27:42 Z Acanikolic Kitchen (BOI19_kitchen) C++14
21 / 100
1 ms 336 KB
#include <bits/stdc++.h>

#define int long long

#define pb push_back

#define F first

#define S second

using namespace std;

const int N = 2e5 + 10;

const int mod = 1e9 + 7;

const int inf = 1e18;

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n,m,k;
    cin >> n >> m >> k;
    if(m < n) {
        cout << "Impossible";
        return 0;
    }
    vector<int>a(n + 1);
    int sa = 0;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
        sa += a[i];
        if(a[i] < k) {
            cout << "Impossible";
            return 0;
        }
    }
    vector<int>b(m + 1);
    int sum = 0;
    for(int i = 1; i <= m; i++) {
        cin >> b[i];
        sum += b[i];
    }
    vector<int>dp(sum + 1,-inf);
    dp[0] = 0;
    for(int i = 1; i <= m; i++) {
        vector<int>ndp = dp;
        for(int j = b[i]; j <= sum; j++) {
            ndp[j] = max(ndp[j],dp[j - b[i]] + min(b[i],n));
        }
        dp = ndp;
    }
    int res = inf;
    for(int i = sa; i <= sum; i++) {
        if(dp[i] >= n * k) res = min(res,i - sa);
    }
    if(res == inf) {
        cout << "Impossible";
    }else {
        cout << res;
    }
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -