Submission #394374

#TimeUsernameProblemLanguageResultExecution timeMemory
394374rocks03Kitchen (BOI19_kitchen)C++14
20 / 100
399 ms233524 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int, int> #define pll pair<ll, ll> #define ff first #define ss second #define pb push_back #define SZ(x) ((int)(x).size()) #define all(x) x.begin(), x.end() #define debug(x) cout << #x << ": " << x << " " #define nl cout << "\n" #define rep(i, a, b) for(int i = (a); i < (b); i++) #define per(i, a, b) for(int i = (a); i >= (b); i--) mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); #define int ll const int INF = 1e15; const int MAXN = 300+10; int N, M, K, a[MAXN], b[MAXN], memo[MAXN][MAXN * MAXN]; void Impossible(){ cout << "Impossible"; } int f(int i, int sum){ if(i == M){ if(sum == 0) return 0; else return INF; } int& ans = memo[i][sum]; if(ans != 1e18){ return ans; } ans = f(i + 1, sum); if(sum - b[i] >= 0){ ans = min(ans, f(i + 1, sum - b[i]) - min(N, b[i])); } return ans; } void solve(){ cin >> N >> M >> K; rep(i, 0, N) cin >> a[i]; rep(i, 0, M) cin >> b[i]; int s = 0; rep(i, 0, N){ if(a[i] < K) Impossible(); s += a[i]; } int sb = 0; rep(i, 0, M){ sb += b[i]; } rep(i, 0, MAXN){ rep(j, 0, MAXN * MAXN){ memo[i][j] = 1e18; } } for(int ans = 0; ans + s <= sb; ans++){ if(N * K + f(0, ans + s) <= 0){ cout << ans; return; } } Impossible(); } main(){ ios_base::sync_with_stdio(false), cin.tie(nullptr); solve(); return 0; }

Compilation message (stderr)

kitchen.cpp:68:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   68 | main(){
      |      ^
#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...