Submission #567307

#TimeUsernameProblemLanguageResultExecution timeMemory
567307RifalKitchen (BOI19_kitchen)C++14
0 / 100
1065 ms26536 KiB
#include <bits/stdc++.h> #include <fstream> #define endl '\n' #define mod 32768 #define INF 100000000 //#define ll long long //#define cin fin //#define cout fout using namespace std; //ofstream fout("convention.out"); //ifstream fin("convention.in"); int main() { int n, m, k; cin >> n >> m >> k; int M = m*300; int N = max(k,40); pair<bool,int> dp[M+3][N+3] = {}; int meal[n], chef[m]; dp[0][0].first = 1; long long sum = 0; for(int i = 0; i < n; i++) { cin >> meal[i]; sum += meal[i]; } for(int q = 0; q < m; q++) { cin >> chef[q]; int x = chef[q]; for(int i = M-1; i >= x; i--) { for(int j = 1; j < N; j++) { if(dp[i-x][j-1].first) { dp[i][j].first = 1; if(x >= k) dp[i][j].second += dp[i-x][j-1].second+1; else dp[i][j].second = dp[i-x][j-1].second; } } } } for(int i = sum; i < M; i++) { for(int j = k; j < N; j++) { if(dp[i][j].first == 1 && dp[i][j].second >= k) { cout << i-sum; return 0; } } } cout << "Impossible"; return 0; }
#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...