Submission #160891

#TimeUsernameProblemLanguageResultExecution timeMemory
160891MohamedAhmed04Longest beautiful sequence (IZhO17_subsequence)C++14
40 / 100
6104 ms88364 KiB
#include <bits/stdc++.h> using namespace std ; const int MAX = 1e5 + 10 ; const int Middle = 1 << 10 ; int arr[MAX] , arr2[MAX] , f[Middle][Middle][21] , prv[MAX] , dp[MAX] ; void print(int now) { if(now == 0) return ; print(prv[now]) ; printf("%d " , now) ; } int main() { int n ; scanf("%d" , &n) ; for(int i = 1 ; i <= n ; ++i) scanf("%d" , &arr[i]) ; for(int i = 1 ; i <= n ; ++i) scanf("%d" , &arr2[i]) ; int Max = 0 , en , vall , valr , x; for(int i = 1 ; i <= n ; ++i) { dp[i] = 1 ; vall = arr[i] & (Middle - 1); valr = arr[i] >> 10; for(int j = 0 ; j < Middle ; ++j) { x = __builtin_popcount((vall & j)) ; if(x > arr2[i]) continue ; if(dp[f[j][valr][arr2[i] - x]] + 1 > dp[i]) dp[i] = dp[f[j][valr][arr2[i] - x]] + 1 , prv[i] = f[j][valr][arr2[i] - x] ; } for(int j = 0 ; j < Middle ; ++j) { x = __builtin_popcount((valr & j)) ; if(dp[i] > dp[f[vall][j][x]]) f[vall][j][x] = i ; } if(dp[i] > Max) Max = dp[i] , en = i ; } printf("%d\n" , Max) ; print(en) ; return 0 ; }

Compilation message (stderr)

subsequence.cpp: In function 'int main()':
subsequence.cpp:20:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d" , &n) ;
  ~~~~~^~~~~~~~~~~
subsequence.cpp:22:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d" , &arr[i]) ;
   ~~~~~^~~~~~~~~~~~~~~~
subsequence.cpp:24:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d" , &arr2[i]) ;
   ~~~~~^~~~~~~~~~~~~~~~~
subsequence.cpp:13:7: warning: 'en' may be used uninitialized in this function [-Wmaybe-uninitialized]
  print(prv[now]) ;
  ~~~~~^~~~~~~~~~
subsequence.cpp:25:16: note: 'en' was declared here
  int Max = 0 , en , vall , valr , x;
                ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...