Submission #844724

#TimeUsernameProblemLanguageResultExecution timeMemory
844724Pa_shaLongest beautiful sequence (IZhO17_subsequence)C++17
0 / 100
0 ms348 KiB
#include <bits/stdc++.h> #define int long long #define endl '\n' using namespace std; constexpr int mod=1e9+7; void solve() { int n; cin>>n; int a[n],k[n]; int to[n]={0},ans=0; for(int i=0;i<n;i++) { cin>>a[i]; } for(int i=0;i<n;i++) { to[i]=-1; cin>>k[i]; } int dp[n]={0}; vector<int>res; for(int i=0;i<n;i++) { dp[i]=1; for(int j=i-1;j>=dp[i];j--) { if(__builtin_popcount((a[i]&a[j]))==k[i]) { if(dp[j]+1>dp[i]) { to[i]=j; dp[i]=dp[j]+1; } } } if(dp[i]>dp[ans]) { ans=i; } } while(ans>-1) { res.push_back(ans+1); ans=to[ans]; } reverse(res.begin(),res.end()); cout<<res.size()<<endl; for(int&i:res) { cout<<i<<" "; } cout<<endl; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t=1; // cin>>t; while(t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...