Вы можете так печатать?
Учитывая два несортированных массива A размера N и B размера M различных элементов, задача состоит в том, чтобы найти все пары из обоих массивов, сумма которых равна X.
Ввод:
Первая строка входных данных содержит целое число T, обозначающее отсутствие тестовых случаев. Затем следуют T тестовых случаев. Каждый тестовый случай содержит 3 строки . Первая строка содержит 3 целых числа, разделенных пробелами N, M, X. Затем в следующих двух строках находятся разделенные пробелами значения массива A и B соответственно.
Выход:
Для каждого тестового случая в новой строке выведите сортированные значения всех пар u,v, где u принадлежит массиву A, а v принадлежит массиву B, так что каждая пара отделена от другой символом', 'без кавычек, а также добавьте пробел после','. Если такой пары не существует, выведите -1.
Ограничения:
1 <= T <= 100
1 <= N, M, X <= 106
-106 <= A, B <= 106
Пример:
Ввод:
2
5 5 9
1 2 4 5 7
5 6 3 4 8
2 2 3
0 2
1 3
Выход:
1 8, 4 5, 5 4
0 3, 2 1
Объяснение:
Тестовый Кейс 1: (1, 8), (4, 5), (5, 4) это пары, сумма которых равна 9.
Что я уже пробовал:
// C++ program to find all pairs in both arrays // whose sum is equal to given value x #include <bits/stdc++.h> using namespace std; // Function to print all pairs in both arrays // whose sum is equal to given value x void findPairs(int arr1[], int arr2[], int n, int m, int x) { for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (arr1[i] + arr2[j] == x) cout << arr1[i] << " " << arr2[j] << endl; } // Driver code int main() { int arr1[] = { 1, 2, 3, 7, 5, 4 }; int arr2[] = { 0, 7, 4, 3, 2, 1 }; int n = sizeof(arr1) / sizeof(int); int m = sizeof(arr2) / sizeof(int); int x = 8; findPairs(arr1, arr2, n, m, x); return 0; }