Skip to content

Instantly share code, notes, and snippets.

@youminkim
Created September 11, 2013 08:35
Show Gist options
  • Save youminkim/6520847 to your computer and use it in GitHub Desktop.
Save youminkim/6520847 to your computer and use it in GitHub Desktop.
import sys
rl = lambda: raw_input()#sys.stdin.readline()
problems = int(rl())
def recur(check_a,check_b, length):
# print check_a, check_b, length
global A,B
if len(check_a) + len(check_b) == 0 :
return length
ret = []
for i in xrange(len(check_a)):
target = A[check_a[i]]
ca=[]
cb=[]
for k in xrange(i+1,len(check_a)):
if target < A[check_a[k]]:
ca.append(check_a[k])
for j in check_b:
if target < B[j]:
cb.append(j)
ret.append(recur(ca,cb,length+1))
for i in xrange(len(check_b)):
target = B[check_b[i]]
ca=[]
cb=[]
for k in xrange(i+1,len(check_b)):
if target < B[check_b[k]]:
cb.append(check_b[k])
for j in check_a:
if target < A[j]:
ca.append(j)
ret.append(recur(ca,cb,length+1))
return max(ret)
for p in xrange(problems):
len_a, len_b = [int(x) for x in rl().strip().split()]
A = [int(x) for x in rl().strip().split()]
B = [int(x) for x in rl().strip().split()]
print recur(range(len(A)), range(len(B)),0)
# print A,B
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment