Submission #680508

#TimeUsernameProblemLanguageResultExecution timeMemory
680508ReLiceLongest beautiful sequence (IZhO17_subsequence)C++14
100 / 100
4300 ms94976 KiB
#include<bits/stdc++.h> using namespace std; #define endl "\n" #define ll long long #define pb push_back #define sz size() #define fr first #define sc second #define all(x) x.begin(),x.end() void start(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); } const ll N = 1e5+10; const ll mod=1e9+7; const ll inf=1e10; ll n,m; ll dp[N],a[1024][1024][11]; ll v[N],v2[N],p[N]; ll cnt(ll x){ return __builtin_popcount(x); } void solve(){ ll b,i,j,mx=-1,mn=mod,ans=1,sum=1,c=0,l,r; cin>>n; for(i=1;i<=n;i++)cin>>v[i]; for(i=1;i<=n;i++)cin>>v2[i]; for(i=1;i<=n;i++){ l=(v[i]>>10); r=v[i]&((1<<10)-1); ans=0; for(j=0;j<(1<<10);j++){ c=v2[i]-cnt(j&r); if(c<0 || c>10) continue; if(dp[ans]<dp[a[l][j][c]]) ans=a[l][j][c]; } dp[i]=dp[ans]+1; p[i]=ans; for(j=0;j<(1<<10);j++){ c=cnt(j&l); if(dp[i]>dp[a[j][r][c]]) a[j][r][c]=i; } } for(i=1;i<=n;i++){ if(dp[i]>dp[sum])sum=i; } vector <ll> res; while(sum!=0){ res.pb(sum); sum=p[sum]; } cout<<res.sz<<endl; reverse(res.begin(),res.end()); for(auto i : res) cout<<i<<' '; } main(){ //fre(""); //start(); ll t=1; //cin>>t; while(t--)solve(); }

Compilation message (stderr)

subsequence.cpp: In function 'void solve()':
subsequence.cpp:25:8: warning: unused variable 'b' [-Wunused-variable]
   25 |     ll b,i,j,mx=-1,mn=mod,ans=1,sum=1,c=0,l,r;
      |        ^
subsequence.cpp:25:14: warning: unused variable 'mx' [-Wunused-variable]
   25 |     ll b,i,j,mx=-1,mn=mod,ans=1,sum=1,c=0,l,r;
      |              ^~
subsequence.cpp:25:20: warning: unused variable 'mn' [-Wunused-variable]
   25 |     ll b,i,j,mx=-1,mn=mod,ans=1,sum=1,c=0,l,r;
      |                    ^~
subsequence.cpp: At global scope:
subsequence.cpp:59:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   59 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...