# given array a and need to find value x
# left and right correspond to initial indices of array a bounding the search
# segment of array a above and below, respectively
def arrayChange(inputArray):
count = 0
for i in range(1, len(inputArray)):
if inputArray[i - 1] >= inputArray[i]:
difference = inputArray[i - 1] - inputArray[i]
inputArray[i] += difference + 1
count += difference + 1
return count
#Time complexity O(M*N)
#Space Complexity O(M+N)
#Method 1
class Solution:
#Function to return the count of number of elements in union of two arrays.
def doUnion(self,a,n,b,m):
c=a+b
c.sort()
d=[]
for i in c:
if i not in d:
d.append(i)
else:
pass
return len(d)
if __name__=='__main__':
t=int(input())
for _ in range(t):
n,m=[int(x) for x in input().strip().split()]
a=[int(x) for x in input().strip().split()]
b=[int(x) for x in input().strip().split()]
ob=Solution()
print(ob.doUnion(a,n,b,m))
#Time complexity O(M)+O(N)+O(Mlog(M)+Nlog(N))
#Space Complexity O(n+m)
#Method 2
class Solution:
#Function to return the count of number of elements in union of two arrays.
def doUnion(self,a,n,b,m):
c=a+b
c.sort() #O(Mlog(M))+O(Nlog(N))
sample_dict={}
for i in c: #O(M)+O(N)
if i in sample_dict.keys():
sample_dict[i]+=1
else:
sample_dict[i]=1
return len([int(x) for x in sample_dict.values()])
if __name__=='__main__':
t=int(input())
for _ in range(t):
n,m=[int(x) for x in input().strip().split()]
a=[int(x) for x in input().strip().split()]
b=[int(x) for x in input().strip().split()]
ob=Solution()
print(ob.doUnion(a,n,b,m))#rotation of an element by one step
def left_rotation(arr,d,n):
for i in range(d):
rotate_by_one_step(arr,n)
def rotate_by_one_step(arr,n):
temp = arr[0]
for i in range(n-1):
arr[i] = arr[i+1]
arr[n-1]=temp
def print_array(arr,n):
for i in range(n):
print(arr[i])
arr=[1,2,3,4,5]
left_rotation(arr,2,5)
print_array(arr,5)class Array(object):
def __init__(self, size, defaultValue = None):
self.size = size
if(defaultValue == None):
self.items = list()
for i in range(size):
self.items.append(defaultValue)
else:
self.items = list()
if(len(defaultValue) == size or len(defaultValue) < size):
for j in range(len(defaultValue)):
if(defaultValue[j]):
self.items.append(defaultValue[j])
for i in range(len(defaultValue), size):
self.items.append(None)
else:
print('Elements are more than the size specified')
def myLen(self):
length = 0
for i in self.items:
if i == None:
continue
else:
length += 1
return length
def insertFirst(self, element):
if (self.myLen() < self.size):
for i in range(self.myLen(), 0, -1):
self.items[i] = self.items[i - 1]
self.items[0] = element
else:
print('Element index out of range')
def insertAtIndex(self, index, element):
if (self.myLen() < self.size):
for i in range(self.myLen(), index, -1):
self.items[i] = self.items[i - 1]
self.items[index] = element
else:
print('Element index out of range')
def insertAfterIndex(self, index, element):
if (self.myLen() < self.size):
for i in range(self.myLen(), index + 1, -1):
self.items[i] = self.items[i - 1]
self.items[index + 1] = element
else:
print('Element index out of range')
def insertBeforeIndex(self, index, element):
if (self.myLen() < self.size):
for i in range(self.myLen(), index - 1, -1):
self.items[i] = self.items[i - 1]
self.items[index - 1] = element
else:
print('Element index out of range')
def delete(self, element):
if element in self.items:
Index = self.items.index(element)
self.items[Index] = None
else:
print('This element is not in the Array!')
def search(self, element):
if element in self.items:
position = 0
for i in range(self.myLen()):
if(self.items[i] == element):
break
else:
position += 1
print('Element {} found at position {}'.format(element, position))
else:
print('This element is not in the Array!')
if __name__ == '__main__':
myArray = Array(5, [1])
print(myArray.items, myArray.myLen())
myArray.insertFirst(3)
print(myArray.items, myArray.myLen())
myArray.insertAfterIndex(1,4)
print(myArray.items, myArray.myLen())
myArray.insertBeforeIndex(3,5)
print(myArray.items, myArray.myLen())
myArray.delete(5)
print(myArray.items, myArray.myLen())
myArray.search(4) class Array(object):
def __init__(self, size, defaultValue = None):
self.size = size
if(defaultValue == None):
self.items = list()
for i in range(size):
self.items.append(defaultValue)
else:
self.items = list()
if(len(defaultValue) == size or len(defaultValue) < size):
for j in range(len(defaultValue)):
if(defaultValue[j]):
self.items.append(defaultValue[j])
for i in range(len(defaultValue), size):
self.items.append(None)
else:
print('Elements are more than the size specified') def myLen(self):
length = 0
for i in self.items:
if i == None:
continue
else:
length += 1
return length def insertFirst(self, element):
if (self.myLen() < self.size):
for i in range(self.myLen(), 0, -1):
self.items[i] = self.items[i - 1]
self.items[0] = element
else:
print('Element index out of range') def insertAtIndex(self, index, element):
if (self.myLen() < self.size):
for i in range(self.myLen(), index, -1):
self.items[i] = self.items[i - 1]
self.items[index] = element
else:
print('Element index out of range') def insertAfterIndex(self, index, element):
if (self.myLen() < self.size):
for i in range(self.myLen(), index + 1, -1):
self.items[i] = self.items[i - 1]
self.items[index + 1] = element
else:
print('Element index out of range') def insertBeforeIndex(self, index, element):
if (self.myLen() < self.size):
for i in range(self.myLen(), index - 1, -1):
self.items[i] = self.items[i - 1]
self.items[index - 1] = element
else:
print('Element index out of range') def delete(self, element):
if element in self.items:
Index = self.items.index(element)
self.items[Index] = None
else:
print('This element is not in the Array!') def search(self, element):
if element in self.items:
position = 0
for i in range(self.myLen()):
if(self.items[i] == element):
break
else:
position += 1
print('Element {} found at position {}'.format(element, position))
else:
print('This element is not in the Array!')if __name__ == '__main__':
myArray = Array(5, [1])
print(myArray.items, myArray.myLen())
myArray.insertFirst(3)
print(myArray.items, myArray.myLen())
myArray.insertAfterIndex(1,4)
print(myArray.items, myArray.myLen())
myArray.insertBeforeIndex(3,5)
print(myArray.items, myArray.myLen())
myArray.delete(5)
print(myArray.items, myArray.myLen())
myArray.search(4)