Thứ Ba, 3 tháng 5, 2022

CANDY1046 C++

#include <bits/stdc++.h>
using namespace std;
int n,  a[101],s;
int minn = 999999;
int f[101][10005];

void nhap()
{
    scanf("%d",&n);
    for (int i=1; i<=n; i++)
    {
        scanf("%d", &a[i]);
        s=s+a[i];
    }
}

void giai()
{
    for(int i=0;i<=n;i++) f[i][0]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=0;j<=s;j++)
        {
            f[i][j]=f[i-1][j];
            if(j>=a[i])
            {
                if(f[i-1][j-a[i]]==1)
                    f[i][j]=1;
            }

        }
    }
    minn=1000000000;
    for(int i=1;i<=s;i++)
    {
        if (f[n][i] == 1&&abs(2*i-s)<minn)
            minn = abs(2*i-s);
    }
    cout << minn << endl;
}

int main()
{
    freopen("candy1046.inp", "r", stdin);
    freopen("candy1046.out", "w", stdout);
    nhap();
    giai();
}

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.