diff options
Diffstat (limited to '02_sorting_and_searching/apartments_1084.cpp')
| -rw-r--r-- | 02_sorting_and_searching/apartments_1084.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/02_sorting_and_searching/apartments_1084.cpp b/02_sorting_and_searching/apartments_1084.cpp new file mode 100644 index 0000000..b5ee47f --- /dev/null +++ b/02_sorting_and_searching/apartments_1084.cpp | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | #include <algorithm> | ||
| 2 | #include <iostream> | ||
| 3 | #include <vector> | ||
| 4 | |||
| 5 | std::vector<int> readn(int n) { | ||
| 6 | std::vector<int> v(n); | ||
| 7 | for (int i = 0; i < n; i++) | ||
| 8 | std::cin >> v[i]; | ||
| 9 | return v; | ||
| 10 | } | ||
| 11 | |||
| 12 | int main() { | ||
| 13 | int n, m, k; | ||
| 14 | std::cin >> n >> m >> k; | ||
| 15 | auto a = readn(n); | ||
| 16 | auto b = readn(m); | ||
| 17 | std::sort(a.begin(), a.end()); | ||
| 18 | std::sort(b.begin(), b.end()); | ||
| 19 | |||
| 20 | size_t s{0}, i{0}, j{0}; | ||
| 21 | while (i < a.size() && j < b.size()) { | ||
| 22 | if (b[j] > a[i] + k) i++; | ||
| 23 | else if (b[j] < a[i] - k) j++; | ||
| 24 | else { s++; i++; j++; } | ||
| 25 | } | ||
| 26 | std::cout << s << "\n"; | ||
| 27 | } | ||
