def
printKPairs(a1, a,size1, size2, k):
if
(k > (size2
*
size1)):
print
(
"k pairs don't exist\n"
)
return
_one, _two
=
[
0
,
0
], [
0
,
0
]
cnt
=
0
while
(cnt < k):
if
(_one[
0
]
=
=
_two[
1
]
and
_two[
0
]
=
=
_one[
1
]):
if
(a1[_one[
0
]] < a2[_one[
1
]]):
print
(
"["
, a1[_one[
0
]],
", "
,
a2[_one[
1
]],
"] "
, end
=
" "
)
_one[
1
]
=
(_one[
1
]
+
1
)
%
size2
if
(_one[
1
]
=
=
0
):
_one[
0
]
=
(_one[
0
]
+
1
)
%
size1
_two[
1
]
=
(_two[
1
]
+
1
)
%
size2
if
(_two[
1
]
=
=
0
):
_two[
0
]
=
(_two[
0
]
+
1
)
%
size2
else
:
print
(
"["
,a2[_one[
1
]]
,
", "
,a1[_one[
0
]],
"] "
,end
=
" "
)
_one[
0
]
=
(_one[
0
]
+
1
)
%
size1
if
(_one[
0
]
=
=
0
):
_one[
1
]
=
(_one[
1
]
+
1
)
%
size2
_two[
0
]
=
(_two[
0
]
+
1
)
%
size2
if
(_two[
0
]
=
=
0
):
_two[
1
]
=
(_two[
1
]
+
1
)
%
size1
elif
(a1[_one[
0
]]
+
a2[_one[
1
]]
<
=
a2[_two[
0
]]
+
a1[_two[
1
]]):
if
(a1[_one[
0
]] < a2[_one[
1
]]):
print
(
"["
,a1[_one[
0
]],
", "
,
a2[_one[
1
]],
"] "
,end
=
" "
)
_one[
1
]
=
((_one[
1
]
+
1
)
%
size2)
if
(_one[
1
]
=
=
0
):
_one[
0
]
=
(_one[
0
]
+
1
)
%
size1
else
:
print
(
"["
,a2[_one[
1
]],
", "
,
a1[_one[
0
]],
"] "
, end
=
" "
)
_one[
0
]
=
((_one[
0
]
+
1
)
%
size1)
if
(_one[
0
]
=
=
0
):
_one[
1
]
=
(_one[
1
]
+
1
)
%
size2
elif
(a1[_one[
0
]]
+
a2[_one[
1
]]
> a2[_two[
0
]]
+
a1[_two[
1
]]):
if
(a2[_two[
0
]] < a1[_two[
1
]]):
print
(
"["
,a2[_two[
0
]],
", "
,a1[_two[
1
]],
"] "
,end
=
" "
)
_two[
0
]
=
((_two[
0
]
+
1
)
%
size2)
if
(_two[
0
]
=
=
0
):
_two[
1
]
=
(_two[
1
]
+
1
)
%
size1
else
:
print
(
"["
,a1[_two[
1
]]
,
", "
,a2[_two[
0
]],
"] "
,end
=
" "
)
_two[
1
]
=
((_two[
1
]
+
1
)
%
size1)
if
(_two[
1
]
=
=
0
):
_two[
0
]
=
(_two[
0
]
+
1
)
%
size1
cnt
+
=
1
if
__name__
=
=
'__main__'
:
a1
=
[
2
,
3
,
4
]
a2
=
[
1
,
6
,
5
,
8
]
size1
=
len
(a1)
size2
=
len
(a2)
k
=
4
printKPairs(a1, a2, size1, size2, k)