AOJ 0572 - Card Game is Fun
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0572
解法
ブルーノが上から取り除く枚数について全通り試す。
aoj/0572.cc1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 5 int f(const int *it, const int *ilast, const int *jt, const int *jlast) 6 { 7 int c = 0; 8 for (; it != ilast && jt != jlast; ++it) { 9 if (*it == *jt) { 10 ++c; 11 ++jt; 12 } 13 } 14 return c; 15 } 16 17 int main() 18 { 19 int A, B; 20 scanf("%d %d", &A, &B); 21 static int as[5000], bs[5000]; 22 for (int i = 0; i < A; i++) { 23 scanf("%d", &as[i]); 24 } 25 for (int j = 0; j < B; j++) { 26 scanf("%d", &bs[j]); 27 } 28 29 int ans = 0; 30 for (int j = 0; j < B; j++) { 31 ans = max(ans, f(as, as+A, bs+j, bs+B)); 32 } 33 printf("%d\n", ans); 34 return 0; 35 }