Submission #170768

#TimeUsernameProblemLanguageResultExecution timeMemory
170768beksultan04Bank (IZhO14_bank)C++14
0 / 100
9 ms2036 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 int long long
#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=1e6+12,INF=1e9+7;
int q[N],a[N],b[N],e[N],g[N],x[N],n,m;
vector <string> v;
string pre(string s){
    int i=s.size()-1;
    while (i>=0 && s[i]!='0'){
        s[i]='0';
        i--;
    }
    s[i]='1';
    ret s;
}

string sum_bin(string a1,string b1){
    int i;
    for (i=0;i<m;++i){
        if (a1[i]=='1')b1[i]='1';
    }
    ret b1;
}

bool is(string a1,string b1){
    int i;
    for (i=0;i<m;++i)
        if (a1[i]=='1' && b1[i]=='1')
            ret 0;
    ret 1;
}
int sum(string a1,string b1){
    int i,c=0;
    for (i=0;i<m;++i)
        if (b1[i]=='1' && a1[i]=='0')
            c+=b[i];
    ret c;
}


void rec(string s,int j){
    if (j==n){
        cout <<"YES";
        exit(0);
    }
    map <string,bool> mp;
    vector <string> v1;
    int k=0,i;
    v1.pb(s);
    while (v1.size()!=k){
        string t=v1[k];
        k++;
        for (i=0;i<t.size();++i){
            if (t[i]=='0'){
                string to=t;
                to[i]='1';
                if (mp[to]==0)
                    v1.pb(to);
                mp[to]=1;
            }

        }
    }
    for (i=0;i<v1.size();++i){
        int x=sum(s,v1[i]);
        if (x==a[j]){
            rec(sum_bin(v1[i],s),j+1);
        }
    }
}

main(){
    nemeshay
    int i,j,k,ans=0,c=1;
    string s="",sss="";
    cin>>n>>m;
    rep(i,n)cin>>a[i];
    rep(i,m){
        sss+='0';
        cin>>b[i];
        c*=2;
        if (i!=0)
            s+='0';
    }
    s+='1';
    while (c>1){
        v.pb(s);
        s=pre(s);
        c--;
    }
    for (i=0;i<v.size();++i){
        int x=sum(sss,v[i]);
        if (x==a[0]){
            rec(v[i],1);
        }
    }

    cout <<"NO";
}

Compilation message (stderr)

bank.cpp: In function 'void rec(std::__cxx11::string, long long int)':
bank.cpp:63:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while (v1.size()!=k){
            ~~~~~~~~~^~~
bank.cpp:66:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (i=0;i<t.size();++i){
                  ~^~~~~~~~~
bank.cpp:77:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (i=0;i<v1.size();++i){
              ~^~~~~~~~~~
bank.cpp: At global scope:
bank.cpp:85:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
bank.cpp: In function 'int main()':
bank.cpp:104:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (i=0;i<v.size();++i){
              ~^~~~~~~~~
bank.cpp:87:11: warning: unused variable 'j' [-Wunused-variable]
     int i,j,k,ans=0,c=1;
           ^
bank.cpp:87:13: warning: unused variable 'k' [-Wunused-variable]
     int i,j,k,ans=0,c=1;
             ^
bank.cpp:87:15: warning: unused variable 'ans' [-Wunused-variable]
     int i,j,k,ans=0,c=1;
               ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...