제출 #501765

#제출 시각아이디문제언어결과실행 시간메모리
501765Ronin13Longest beautiful sequence (IZhO17_subsequence)C++14
23 / 100
6061 ms1868 KiB
#include<bits/stdc++.h> #define ll long long #define ull unsigned ll #define pll pair<ll,ll> #define pb push_back #define epb emplace_back #define f first #define s second #define pii pair<int,int> #define inf 1e9+1 #define linf 1e18+1 using namespace std; void solve(){ int n;cin>>n; int a[n+1]; int k[n+1]; int d[n+1],d1[n+1]; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ cin>>k[i]; } for(int i=1;i<=n;i++){ d[i]=1; d1[i]=-1; } for(int i=2;i<=n;i++){ for(int j=i-1;j>=1;j--){ int x=a[i]&a[j]; if(__builtin_popcount(x)==k[i]){ if(d[j]+1>d[i]){ d[i]=d[j]+1; d1[i]=j; } } } } int mx=0,mxi; for(int i=1;i<=n;i++){ if(d[i]>mx){ mx=d[i]; mxi=i; } } vector<int>vec; while(mxi!=-1){ vec.pb(mxi); mxi=d1[mxi]; } cout<<vec.size()<<"\n"; reverse(vec.begin(),vec.end()); for(int to:vec)cout<<to<<' '; } int main(){ ios_base::sync_with_stdio(false);cin.tie(0); int test=1;//cin>>test; while(test--)solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...