제출 #961562

#제출 시각아이디문제언어결과실행 시간메모리
961562doducanh은행 (IZhO14_bank)C++14
100 / 100
136 ms8664 KiB
#include <bits/stdc++.h>

using namespace std;
#define fi first
#define se second
pair<int,int>f[(1<<20)+7];
int a[25],b[25];
int n,m;
main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=0;i<m;i++)cin>>b[i];
    f[0]={0,0};
    for(int mask=0;mask<(1<<m);mask++){
        if(f[mask].fi==n){
            cout<<"YES";
            return 0;
        }
        for(int i=0;i<m;i++){
            if((mask>>i)&1)continue;
            pair<int,int> newstate;
            if(f[mask].se+b[i]<a[f[mask].fi]){
                newstate={f[mask].fi,f[mask].se+b[i]};
            }
            else if(f[mask].se+b[i]==a[f[mask].fi]){
                newstate={f[mask].fi+1,0};
            }
            f[mask^(1<<i)]=max(f[mask^(1<<i)],newstate);
        }
    }
    cout<<"NO";
    return 0;
}

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

bank.cpp:9:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    9 | main()
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...