Submission #169371

#TimeUsernameProblemLanguageResultExecution timeMemory
169371AtalasionKitchen (BOI19_kitchen)C++14
9 / 100
435 ms4088 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]; bitset<N * N> dp[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; dp[0][0] = 1; for (int i = 1; i <= m; i++){ for(int j = N - 1; j >= 0; j--){ dp[j] |= (dp[j - 1] << b[i]); } } //cout << "YES" << endl; int ans = 100000000; for (int i = k; i < N; i++){ for (int j = sum; j < N * N; j++){ if (dp[i][j]){ ans = min(j, ans); } } } cout << ans - sum; 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...