CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
commit 0875f946e062c4085190b6a78c11cb912887fc79
parent 115ba03c6e0ab31395af2d6f2401265b7d023ca0
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Mon, 25 Mar 2024 02:26:01 -0300

Add problem 19 solution

Diffstat:
Asolutions/ej19.cpp | 43+++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+), 0 deletions(-)
diff --git a/solutions/ej19.cpp b/solutions/ej19.cpp
@@ -0,0 +1,43 @@
+#include <iostream>
+#include <vector>
+#include <ctime>
+#include <cstdlib>
+#include <algorithm>
+
+#define VECTOR_ELEMENT_LIMIT    20
+
+// El vector debe tener un tamaƱo definido
+void vector_random_populate(std::vector<int>& v) {
+    srand (time(NULL));
+    for(size_t i = 0; i < v.size(); ++i)
+        v[i] = (int)(rand() % VECTOR_ELEMENT_LIMIT);
+}
+
+void vector_print(const std::vector<int> v) {
+    std::cout << "[";
+    for(size_t i = 0; i < v.size(); ++i) {
+        std::cout << v[i] << ((v.size() == i+1) ? "" : ", ");
+    }
+    std::cout << "]\n";
+}
+
+// Se considera que el vector siempre tiene mas de 3 elementos
+void vector_find_max(std::vector<int> v, std::vector<int>& max) {
+    std::sort(v.begin(), v.end());
+    for(size_t i = 0; i<max.size(); ++i)
+        max[i] = v[v.size()-(1+i)];
+}
+
+int main (void) {
+    std::vector<int> max(3);
+    std::vector<int> list(10); 
+
+    vector_random_populate(list);
+    list[list.size() - 1] = 0; // Por enunciado deber terminar en 0
+
+    vector_print(list);
+    vector_find_max(list, max);
+    vector_print(max);
+
+    return 0;
+}