uva 10635 - Prince and Princess
来源:互联网 发布:郑州财经学院网络下线 编辑:程序博客网 时间:2024/05/05 05:42
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <map>#include <algorithm>#define maxn 250*250 + 10#define ll long long#define INF 1000000000#define FOR(i, a, b) for(int i = a; i < b; ++i)using namespace std;int main(){ int kase = 0, t; scanf("%d", &t); while(t--) { int n, p, q; int a[maxn], b[maxn], g[maxn], len_b = 0, num; scanf("%d%d%d", &n, &p, &q); memset(a, 0, sizeof(a)); FOR(i, 1, p+2) {scanf("%d", &num); a[num] = i;} FOR(i, 1, q+2) { scanf("%d", &num); if(a[num]) b[len_b++] = a[num]; } FOR(i, 0, len_b+1) g[i] = INF; int ans = 0; int ss[maxn]; FOR(i, 0, len_b){ int k = lower_bound(g+1, g+len_b+1, b[i]) - g; //ss[i] = k; g[k] = b[i]; ans = max(ans, k); } //FOR(i, 0, len_b) printf("%d ", ss[i]); printf("\n"); printf("Case %d: %d\n", ++kase, ans); } return 0;}