Submission #854596

#TimeUsernameProblemLanguageResultExecution timeMemory
854596Zero_OPLongest beautiful sequence (IZhO17_subsequence)C++14
7 / 100
1 ms456 KiB
#include<bits/stdc++.h>

using namespace std;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(NULL); cout.tie(NULL);

    if(fopen("A.INP", "r")){
        freopen("A.INP", "r", stdin);
        freopen("A.OUT", "w", stdout);
    }

    int n; cin>>n;
    vector<int> a(n), k(n);
    for(int i=0; i<n; ++i){
        cin>>a[i];
    }
    for(int i=0; i<n; ++i){
        cin>>k[i];
    }

    if(n<=20){
        int ans=0, ans_mask=1;
        for(int mask=1; mask<(1<<n); ++mask){
            bool ok=true;
            int pre=-1;
            for(int i=0; i<n; ++i){
                if((mask>>i)&1){
                    if(pre==-1){
                        pre=a[i];
                    }
                    else if(__builtin_popcount(a[i]&pre)==k[i]){
                        pre=a[i];
                    }
                    else {
                        ok=false;
                        break;
                    }
                }
            }

            if(ok){
                int cur=__builtin_popcount(mask);
                if(cur>ans){
                    ans=cur;
                    ans_mask=mask;
                }
            }
        }
        cout<<ans<<'\n';
        for(int i=0; i<n; ++i){
            if((ans_mask>>i)&1){
                cout<<i+1<<' ';
            }
        }
        return 0;
    }

    return 0;
}

Compilation message (stderr)

subsequence.cpp: In function 'int main()':
subsequence.cpp:10:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |         freopen("A.INP", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
subsequence.cpp:11:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |         freopen("A.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...