Submission #170151

#TimeUsernameProblemLanguageResultExecution timeMemory
170151nvmdavaLongest beautiful sequence (IZhO17_subsequence)C++17
23 / 100
6086 ms6480 KiB
#include <bits/stdc++.h> #pragma GCC optimize("unroll-loops") #pragma GCC optimize("Ofast") #pragma GCC target("fma,avx2") using namespace std; #define ll long long #define ff first #define ss second #define INF 0x3f3f3f3f #define MOD 1000000007 #define N 100005 int a[N], k[N], ans[N], f[N]; int bit[1050000]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i = 1; i <= 1048576; ++i){ bit[i] = bit[-i & i ^ i] + 1; } 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(bit[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(); } }

Compilation message (stderr)

subsequence.cpp: In function 'int main()':
subsequence.cpp:24:25: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
         bit[i] = bit[-i & i ^ i] + 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...