Submission #170849

#TimeUsernameProblemLanguageResultExecution timeMemory
170849beksultan04Bank (IZhO14_bank)C++14
71 / 100
1085 ms4604 KiB
#include <bits/stdc++.h>
using namespace std;
#define fr first
#define sc second
#define pb push_back
#define mk make_pair
#define OK puts("OK");
#define sz(s) (int)s.size()
#define pii pair<int,int>
#define all(s) s.begin(), s.end()
#define allr(s) s.rbegin(), s.rend()
#define rep(i,n) for (i=0;i<(n);++i)
#define rep1(i,n) for (i=1;i<=(n);++i)
#define ret return
#define nemeshay ios::sync_with_stdio(0),cin.tie(0);
const int N=30,INF=1e9+7;
int a[N],b[N],n,m,flag=0,mp[(1<<21)];
vector <int> v[N];
int sum(int a){
    int i,c=0;
    for (i=0;i<m;++i)
        if ((a&(1<<i)))
            c+=b[i];
    ret c;
}

void rec(int s,int j){
    if (j==n){
        cout <<"YES";
        exit(0);
    }
    int i;
    if (v[j].empty()){
        cout <<"NO";
        exit(0);
    }

    for (i=0;i<v[j].size();++i){
        int x=v[j][i];
        if (!(s&x))
            if( mp[x]==a[j])
                rec((s|x),j+1);

    }


}

main(){
    nemeshay
    int i,c=1,j;
    cin>>n>>m;
    rep(i,n)cin>>a[i];
    rep(i,m)cin>>b[i];

    for (i=1;i<(1<<m);++i){
        int x=sum(i);
        mp[i]=x;
        for (j=0;j<n;++j)
            if (x==a[j])
                v[j].pb(i);
    }
    for (i=1;i<(1<<m);++i)
        if (mp[i]==a[0])
            rec(i,1);

/*2 6
8 10
5 4 8 6 3 11
*/





    if (flag)cout <<"YES";
    else cout <<"NO";
}

Compilation message (stderr)

bank.cpp: In function 'void rec(int, int)':
bank.cpp:38:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (i=0;i<v[j].size();++i){
              ~^~~~~~~~~~~~
bank.cpp: At global scope:
bank.cpp:49:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
bank.cpp: In function 'int main()':
bank.cpp:51:11: warning: unused variable 'c' [-Wunused-variable]
     int i,c=1,j;
           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...