링크 :
https://codeforces.com/contest/1230/problem/A
질문의 의미 :
DAWID 사탕의 네 개의 가방을 가지고있다. 이들의 i 번째는 인공 지능 사탕이 포함되어 있습니다. 또한, DAWID는 두 친구가있다. 그는 그의 두 친구 중 하나에 각각의 가방을 제공하고자합니다. 각 친구가 총에 사탕 같은 양을 수신하는 방식으로 가방을 배포 할 수 있습니까?
당신이 자신을 위해 가방을 보관하지 수, 주 또는 멀리 던져, 각각의 가방은 친구 중 하나에 부여해야합니다.
아이디어 :
라인에 잤어요은 배낭을 썼다
코드 :
#include <bits/stdc++.h>
using namespace std;
int a[5], dp[1000];
int sum = 0;
int main()
{
for (int i = 1;i <= 4;i++)
cin >> a[i], sum += a[i];
if (sum%2 == 1)
{
puts("NO");
return 0;
}
for (int i = 1;i <= 4;i++)
{
for (int j = sum/2;j >= a[i];j--)
dp[j] = max(dp[j], dp[j-a[i]]+a[i]);
}
if (dp[sum/2] == sum/2)
puts("YES");
else
puts("NO");
return 0;
}