제출 #1289350

#제출 시각아이디문제언어결과실행 시간메모리
1289350kubinsgk8은행 (IZhO14_bank)C++20
0 / 100
1 ms572 KiB
#include<bits/stdc++.h>
using namespace std;

long long n, m;

long long a[22], b[22];

bool  dp[22][(1<<20)+2];

long long sum[(1<<20)+2];

int main()
{
    freopen("bank.in", "r", stdin);
    freopen("bank.out", "w", stdout);

    ios_base::sync_with_stdio(0);cin.tie(0);

    cin>>n>>m;

    for(int i=1; i<=n; i++)cin>>a[i];

    for(int i=1; i<=m; i++)cin>>b[i];

    for(int mask=1; mask<(1<<m); mask++)
    {
        for(int i=0; i<m; i++)
        {
            if(mask&(1<<(i)))sum[mask]+=b[i+1];
        }
        dp[0][mask]=true;
    }

    for(int i=1; i<=n; i++)
    {

        for(int mask=1; mask<(1<<m); mask++)
        {
            for(int con=mask; con; con=(con-1)&mask)
            {
                if(sum[con]!=a[i])continue;
                if(dp[i-1][mask^con])
                {
                    dp[i][mask]=true;
                    break;
                }
            }
        }
    }


    for(int mask=1; mask<(1<<m); mask++)
    {
        if(dp[n][mask])
        {
            cout<<"YES";
            return 0;
        }
    }

    cout<<"NO";

    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

bank.cpp: In function 'int main()':
bank.cpp:14:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |     freopen("bank.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:15:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |     freopen("bank.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...