Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit11758bb746a3515562faf949dc6e105dce27dac2 (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-05-21 20:17:38 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-05-21 20:17:38 +0300
Files87fd0fdda1f9e79ce78d23fe01b484b5b2461ea5
uni-projects-11758bb746a3515562faf949dc6e105dce27dac2.tar
uni-projects-11758bb746a3515562faf949dc6e105dce27dac2.tar.gz
uni-projects-11758bb746a3515562faf949dc6e105dce27dac2.zip
Parente47c57a92d07f40d792b4a22c9934e0502c75aad (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.cpp54
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;
+}