summaryrefslogtreecommitdiff
path: root/1_anno/Programmazione_1/ex1_25_06_19.cc
diff options
context:
space:
mode:
Diffstat (limited to '1_anno/Programmazione_1/ex1_25_06_19.cc')
-rw-r--r--1_anno/Programmazione_1/ex1_25_06_19.cc45
1 files changed, 45 insertions, 0 deletions
diff --git a/1_anno/Programmazione_1/ex1_25_06_19.cc b/1_anno/Programmazione_1/ex1_25_06_19.cc
new file mode 100644
index 0000000..f28a09b
--- /dev/null
+++ b/1_anno/Programmazione_1/ex1_25_06_19.cc
@@ -0,0 +1,45 @@
+#include <iostream>
+#include <utility>
+#include <vector>
+
+using namespace std;
+
+template<int N, int M>
+bool func(int (&A)[N][M], short k, double x) {
+ for(int i = 0; i < M; ++i) {
+ vector<pair<int, int> > v;
+
+ for(int j = 0; j < N-1; ++j) {
+ v.push_back({A[j][i], A[j+1][i]});
+ }
+
+ int check_num = 0;
+
+ for(auto const& i : v) {
+ if(i.second == 0) continue;
+ double elem = static_cast<double>(i.first) / static_cast<double>(i.second);
+
+ if(elem < x)
+ check_num++;
+ }
+
+ if(check_num == k)
+ return true;
+ }
+
+
+ return false;
+}
+
+int main() {
+ int A[4][3] = {
+ {2, 3, 5},
+ {10, 20, 10},
+ {90, 19, 69},
+ {10, 0, 0},
+ };
+
+ cout << func(A, 2, 0.005) << endl; // 0
+ cout << func(A, 2, 1.0) << endl; // 1
+ return 0;
+}