Submission #169391

#TimeUsernameProblemLanguageResultExecution timeMemory
169391AtalasionKitchen (BOI19_kitchen)C++14
21 / 100
26 ms792 KiB
//khodaya khodet komak kon #include <bits/stdc++.h> #define F first #define S second #define pb push_back #define all(x) x.begin(), x.end() #pragma GCC optimise ("ofast") #pragma GCC optimise("unroll-loops") using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; const int N = 300 + 10; const ll MOD = 1000000000 + 7; const ll INF = 1000000000000000000; const ll LOG = 25; int n, m, k, a[N], b[N]; int dp[N * N]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m >> k; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= m; i++) cin >> b[i]; int sum = 0, sum1 = 0; sort(a + 1, a + n + 1); if (a[1] < k) return cout << "Impossible", 0; if (m < k) return cout << "Impossible", 0; for (int i = 1; i <= n; i++) sum += a[i]; for (int i = 1; i <= m; i++) sum1 += b[i]; if (sum1 < sum) return cout << "Impossible",0; //memset(dp, 31, sizeof dp); //dp[0] = 0; for (int i = 1; i <= m; i++){ for (int j = N * N - 1; j >= b[i]; j--){ dp[j] = max(dp[j], dp[j - b[i]] + min(n, b[i])); //cout << j << ' ' << dp[j] << '\n'; } } for (int i = sum; i < N * N; i++){ if (dp[i] >= n * k) return cout << i - sum, 0; } return 0; }

Compilation message (stderr)

kitchen.cpp:8:0: warning: ignoring #pragma GCC optimise [-Wunknown-pragmas]
 #pragma GCC optimise ("ofast")
 
kitchen.cpp:9:0: warning: ignoring #pragma GCC optimise [-Wunknown-pragmas]
 #pragma GCC optimise("unroll-loops")
#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...