Submission #89354

#TimeUsernameProblemLanguageResultExecution timeMemory
89354Bodo171Longest beautiful sequence (IZhO17_subsequence)C++14
0 / 100
6 ms4600 KiB
#include <iostream> #include <fstream> using namespace std; const int nmax=(1<<17); const int valmax=(1<<20)+1; const int lim=(1<<10); int dp[valmax][21][11]; int v[nmax],k[nmax],best[nmax]; int pc[(1<<20)]; int n,i,j,ans; void ins(int x,int val) { for(int i=0;i<lim;i++) dp[(x^i)][pc[x]][pc[i]]=max(dp[(x^i)][pc[x]][pc[i]],val); } int gt(int x,int b,int btot) { int ret=0; for(int i=0;i<lim;i++) for(j=0;j<20;j++) if(btot+j-pc[i]==b) ret=max(ret,dp[(x^(i<<10))][j][-b+btot+j-pc[i]]); return ret; } int main() { freopen("data.in","r",stdin); cin>>n; for(i=1;i<(1<<20);i++) pc[i]=pc[(i&(i-1))]+1; for(i=1;i<=n;i++) { cin>>v[i]; } for(i=1;i<=n;i++) { cin>>k[i]; } for(int cnt=1;cnt<=n;cnt++) { best[cnt]=gt(v[cnt],k[cnt],pc[v[cnt]])+1; ins(v[cnt],best[cnt]); ans=max(ans,best[cnt]); } cout<<ans; return 0; }

Compilation message (stderr)

subsequence.cpp: In function 'int main()':
subsequence.cpp:27:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
     freopen("data.in","r",stdin);
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...