Submission #926119

#TimeUsernameProblemLanguageResultExecution timeMemory
926119vjudge1Kitchen (BOI19_kitchen)C++17
100 / 100
60 ms106596 KiB
#include<iostream> #include<cassert> #include<cmath> #include<cstring> #include<algorithm> #include<vector> #include<stack> #include<set> #include<queue> #include<map> #include<iomanip> #include<bitset> using namespace std; const int N = (int)4e5 + 7; const int inf = (int)1e9 + 7; const int MOD = (int)998244353; const long long INF = (long long)1e18 + 7; int mult(int x, int y) { return 1ll*x*y%MOD; } int sum(int x, int y) { x += y; if(x >= MOD) { x -= MOD; } return x; } int sub(int x, int y) { x -= y; if(x < 0) { x += MOD; } return x; } int n, m, k; int a[301], b[301], dp[301][90001]; int main() { ios_base::sync_with_stdio(NULL); cin.tie(0); cin >> n >> m >> k; int tot = 0; for(int i = 1; i <= n; ++i) { cin >> a[i]; tot += a[i]; } for(int i = 1; i <= m; ++i) { cin >> b[i]; } if(m<k) { cout << "Impossible\n"; return 0; } for(int i = 1; i <= n; ++i) { if(a[i] < k) { cout << "Impossible\n"; return 0; } } for(int i = 0; i <= m; ++i) { for(int w = 0; w <= 9e4; ++w) { dp[i][w] = -inf; } } dp[0][0] = 0; for(int i = 1; i <= m; ++i) { int x = min(n, b[i]); for(int w = 0; w <= 9e4; ++w) { dp[i][w] = dp[i-1][w]; if(w>=b[i]) { dp[i][w] = max(dp[i][w], dp[i-1][w-b[i]]+x); } } } int ans = inf; for(int w = tot; w <= 9e4; ++w) { if(dp[m][w] >= n*k) { cout << w-tot << "\n"; return 0; } } cout << "Impossible\n"; return 0; }

Compilation message (stderr)

kitchen.cpp: In function 'int main()':
kitchen.cpp:81:6: warning: unused variable 'ans' [-Wunused-variable]
   81 |  int ans = inf;
      |      ^~~
#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...