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...