Submission #1269076

#TimeUsernameProblemLanguageResultExecution timeMemory
1269076binminh01Longest beautiful sequence (IZhO17_subsequence)C++20
40 / 100
6090 ms2004 KiB
#include<bits/allocator.h> #pragma GCC optimize("Ofast,unroll-loops") #pragma GCC target("avx2,fma,bmi,bmi2,popcnt,lzcnt,tune=native") #include<stdio.h> #define scan(x) do{while((x=getchar())<'0'); for(x-='0'; '0'<=(_=getchar()); x=(x<<3)+(x<<1)+_-'0');}while(0) char _; constexpr int N = 100000; int n, m, a[N], b[N], c[N], f[N], g[N]; int main() { scan(n); for (int i = 0; i < n; ++i) {scan(a[i]);} for (int i = 0; i < n; ++i) {scan(b[i]);} int k = 0; for (int i = 0; i < n; ++i) { g[i] = -1; for (int j = 0; j < i; ++j) if (__builtin_popcount(a[i] & a[j]) == b[i] && f[i] < f[j]) f[i] = f[j], g[i] = j; ++f[i]; if (f[k] < f[i]) k = i; } printf("%d\n", f[k]); for (; ~k; k = g[k]) c[m++] = k; for (int i = m - 1; i >= 0; --i) printf("%d ", c[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...