@@ -107,11 +107,30 @@ def optimalReOrder(g_rev,oppo,N):
107107 k = i
108108 print (arr1 )
109109 print (arr2 )
110+
111+
112+ #merge sort approach (There might be a bug here..)
113+ def optimal_reorder (g_rev ,oppo ,N ):
114+ tagged_grev = [('d' ,i ) for i in g_rev ]
115+ tagged_oppo = [('a' ,i ) for i in oppo ]
116+ merged = tagged_grev + tagged_oppo
117+ merged = sorted (merged ,key = lambda x : x [1 ])
118+ max_wins = 0
119+ for i in range (len (merged )- 1 ):
120+ print (i )
121+ if set ((merged [i ][0 ],merged [i + 1 ][0 ])) == {'a' ,'d' }:
122+ if (merged [i ][0 ] == 'a' ) and (merged [i + 1 ][0 ] == 'd' ):
123+ if (merged [i ][1 ] < merged [i + 1 ][1 ]):
124+ print (merged [i ][1 ],merged [i + 1 ][1 ])
125+ max_wins += 1
126+ return max_wins
127+
110128
111129if __name__ == '__main__' :
112130 T = int (input ())
113131 for tcs in range (T ):
114132 N = int (input ())
115133 g_rev = list (map (int ,input ().strip ().split ()))
116134 oppo = list (map (int ,input ().strip ().split ()))
117- optimalReOrder (g_rev ,oppo ,N )
135+ optimalReOrder (g_rev ,oppo ,N )
136+ print (optimal_reorder (g_rev ,oppo ,N ))
0 commit comments