Codeforces 라운드 # 588 (사업부. 2) A. DAWID과 사탕 가방

링크 :

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;
}

추천

출처www.cnblogs.com/YDDDD/p/11620817.html