#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int t,n,p,q,cs=1;
cin>>t;
while(t--){
cin>>n>>p>>q;
p++,q++;
vector<int> at(p),a(q);
for(int i=0;i<p;i++)
cin>>at[i];
for(int i=0;i<q;i++){
cin>>n;
for(int j=0;j<p;j++){
if(at[j]==n){
a[i]=j;
break;
}
}
}
// for(int i:a)
// cout<<i<<' ';
// cout<<endl;
n=q;
int len=1;
std::vector<int> b(n);
// vector<vector<int> > c(n,vector<int>(1,0));
b[0]=a[0];
for(int i=1;i<n;i++){
if(a[i]<b[0]){b[0]=a[i];/*c[0][0]=i;*/}
else if(a[i]>b[len-1]){b[len]=a[i];/*c[len]=c[len-1];c[len].push_back(i);*/len++;}
else {
vector<int>::iterator it= lower_bound(b.begin(),b.begin()+len,a[i]);
b[it-b.begin()]=a[i];
// c[it-b.begin()]=c[it-b.begin()-1];
// c[it-b.begin()].push_back(i);
}
}
cout<<"Case "<<cs++<<": "<<len<<endl;
// cout<<len<<endl<<"-"<<endl;
// vector<int>::iterator it=c[len-1].begin();
// for(;it!=c[len-1].end();it++)
// cout<<a[*it]<<endl;
}
}
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int t,n,p,q,cs=1;
cin>>t;
while(t--){
cin>>n>>p>>q;
p++,q++;
vector<int> at(p),a(q);
for(int i=0;i<p;i++)
cin>>at[i];
for(int i=0;i<q;i++){
cin>>n;
for(int j=0;j<p;j++){
if(at[j]==n){
a[i]=j;
break;
}
}
}
// for(int i:a)
// cout<<i<<' ';
// cout<<endl;
n=q;
int len=1;
std::vector<int> b(n);
// vector<vector<int> > c(n,vector<int>(1,0));
b[0]=a[0];
for(int i=1;i<n;i++){
if(a[i]<b[0]){b[0]=a[i];/*c[0][0]=i;*/}
else if(a[i]>b[len-1]){b[len]=a[i];/*c[len]=c[len-1];c[len].push_back(i);*/len++;}
else {
vector<int>::iterator it= lower_bound(b.begin(),b.begin()+len,a[i]);
b[it-b.begin()]=a[i];
// c[it-b.begin()]=c[it-b.begin()-1];
// c[it-b.begin()].push_back(i);
}
}
cout<<"Case "<<cs++<<": "<<len<<endl;
// cout<<len<<endl<<"-"<<endl;
// vector<int>::iterator it=c[len-1].begin();
// for(;it!=c[len-1].end();it++)
// cout<<a[*it]<<endl;
}
}
Comments
Post a Comment