diff options
| Commit | 11758bb746a3515562faf949dc6e105dce27dac2 (patch) | |
|---|---|---|
| Author | 2023-05-21 20:17:38 +0300 | |
| Committer | 2023-05-21 20:17:38 +0300 | |
| Files | 87fd0fdda1f9e79ce78d23fe01b484b5b2461ea5 | |
| uni-projects-11758bb746a3515562faf949dc6e105dce27dac2.tar uni-projects-11758bb746a3515562faf949dc6e105dce27dac2.tar.gz uni-projects-11758bb746a3515562faf949dc6e105dce27dac2.zip | ||
| Parent | e47c57a92d07f40d792b4a22c9934e0502c75aad (diff) | |
[DAAP] Added old first homework
From a month ago
1 files changed, 54 insertions, 0 deletions
| -rw-r--r-- | Year 2/Design and analysis of algorithms/Practicum/Homeworks/HW1-Crossword.cpp | 54 |
diff --git a/Year 2/Design and analysis of algorithms/Practicum/Homeworks/HW1-Crossword.cpp b/Year 2/Design and analysis of algorithms/Practicum/Homeworks/HW1-Crossword.cpp new file mode 100644 index 0000000..a1ce13d --- /dev/null +++ b/Year 2/Design and analysis of algorithms/Practicum/Homeworks/HW1-Crossword.cpp @@ -0,0 +1,54 @@ +#include <cmath> +#include <cstdio> +#include <vector> +#include <iostream> +#include <algorithm> +using namespace std; + +bool betp(int big, int bet, int low) { + return big >= bet && bet >= low; +} + +int main() { + int N = 0, M = 0; + scanf("%d %d", &N, &M); + vector<vector<int>> crossroads; + int ai = 0, bi = 0; + for (int i = 0; i < N; i++) { + scanf("%d %d", &ai, &bi); + crossroads.push_back({ ai, bi }); + } + vector<vector<int>> trees; + for (int i = 0; i < M; i++) { + scanf("%d %d", &ai, &bi); + trees.push_back({ ai, bi }); + } + int Q = 0; + scanf("%d", &Q); + vector<int> sizes; + for (int i = 0; i < Q; i++) { + scanf("%d", &ai); + sizes.push_back(ai / 2); + } + + vector<int> results(sizes.size()); + for (int i = 0; i < sizes.size(); i++) { + results[i] = 0; + for (vector<int>& tree : trees) { + for (vector<int>& crossroad : crossroads) { + if (betp(crossroad[0] + sizes[i], tree[0], crossroad[0] - sizes[i]) || + betp(crossroad[1] + sizes[i], tree[1], crossroad[1] - sizes[i])) { + results[i]++; + break; + } + } + } + } + + printf("%d", results[0]); + for (int i = 1; i < results.size(); i++) { + printf(" %d", results[i]); + } + + return 0; +} |
