Independent Task Scheduling
Time Limit: 1000MS | Memory Limit: 65535KB |
Submissions: 581 | Accepted: 144 |
Sample Input
6 2 5 7 10 5 2 3 8 4 11 3 4
Sample Output
15
#include <iostream> using namespace std; int a[205]; int b[205]; int N; int suma; int dp[200000] = {0}; int k = 0; int sum = 10000000; int main() { cin>>N; suma = 0; for (int i = 0; i < N; i++) { cin>>a[i]; suma += a[i]; } for (int i = 0; i < N; i++) { cin>>b[i]; } for (int i = 0; i < N; i++) { for (int j = suma; j >= 0; j--) { if (j >= a[i]) { dp[j] = min(dp[j - a[i]], dp[j] + b[i]); } else { dp[j] += b[i]; } } } for (int i = 0; i <= suma; i++) { k = max(i , dp[i]); sum = min(sum, k); } cout <<sum<<endl; return 0; }