Submission #170141

#TimeUsernameProblemLanguageResultExecution timeMemory
170141nvmdavaLongest beautiful sequence (IZhO17_subsequence)C++17
23 / 100
6099 ms2740 KiB
#include <bits/stdc++.h> #pragma GCC optimize("unroll-loops") #pragma GCC optimize("-Ofast") #pragma GCC target("avx2,fma") using namespace std; #define ll long long #define ff first #define ss second mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); #define INF 0x3f3f3f3f #define MOD 1000000007 #define N 100005 int a[N], k[N], ans[N], f[N]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i = 1; i <= n; ++i) cin>>a[i]; for(int i = 1; i <= n; ++i){ cin>>k[i]; ans[i] = 1; } int mxid = 1; for(int i = 1; i <= n; ++i){ for(int j = 1; j < i; ++j){ if(__builtin_popcount(a[i] & a[j]) == k[i]){ if(ans[i] <= ans[j]){ ans[i] = ans[j] + 1; f[i] = j; } } } if(ans[i] > ans[mxid]) mxid = i; } cout<<ans[mxid]<<'\n'; vector<int> v; while(mxid){ v.push_back(mxid); mxid = f[mxid]; } while(!v.empty()){ cout<<v.back()<<' '; v.pop_back(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...