1 solutions

  • 0
    @ 2024-12-11 0:49:57

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<vector>
    #define INF 0x7fffffff
    using namespace std;
    int S[1000010],g[1000010],d[1000010],N,x,n=0,ans=0;
    vector<int> num[1000010];
    int main(){
    	cin>>N;
    	for(int i=1;i<=N*5;i++){
    		scanf("%d",&x);
    		num[x].push_back(i);
    	}
    	for(int i=1;i<=N*5;i++){
    		scanf("%d",&x);
    		for(int j=num[x].size()-1;j>=0;j--) S[n++]=num[x][j];
    	}
    	for(int i=1;i<=n;i++) g[i]=INF;
    	for(int i=0;i<n;i++){
    		int k=lower_bound(g+1,g+n+1,S[i])-g;
    		d[i]=k; g[k]=S[i];
    		ans=max(ans,d[i]);
    	}
    	printf("%d\n",ans);
    }
    
    
    • 1

    Information

    ID
    773
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By