Untitled
unknown
plain_text
2 years ago
829 B
7
Indexable
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
int c=0;
while(t--){
int n;
cin>>n;
int a[n+1],b[n+1];
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
int left[n+1],right[n+1];
for(int i=1;i<=n;i++) left[i]=n+1;
for(int i=1;i<=n;i++) right[i]=0;
int idx=1;
for(int i=1;i<=n;i++){
if(a[i]==b[idx]){
left[idx]=i;
idx++;
}
}
idx=n;
for(int i=n;i>=1;i--){
if(a[i]==b[idx]){
right[idx]=i;
idx--;
}
}
for(int i=1;i<=n;i++) cout<<left[i]<<" ";cout<<endl;
for(int i=1;i<=n;i++) cout<<right[i]<<" ";cout<<endl;
int ans=n;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(left[i]<=n && right[j]>=1 && left[i]<right[j]){
ans=min(ans,j-i-1);
ans=min(ans,min(n-i,j-1));
}
}
}
cout<<ans<<"\n";
}
}Editor is loading...
Leave a Comment