# Commits

committed 32c647a

¡Generadores para network y statues listos!

--
danielmaxx

• Participants
• Parent commits fb8ed87

# File generators/network.py

+import random
+
+max_coord = 1000
+min_coord = -1000
+
+def exist_point(points, point) :
+    for p in points:
+        if p[0] == point[0] and p[1] == point[1] :
+            return True
+    return False
+
+def gen_point(mini, maxi):
+    x = random.randint(mini, maxi)
+    y = random.randint(mini, maxi)
+    return (x, y)
+
+T = 2
+print T
+for i in range(T):
+    N = random.randint(1, 50)
+    M = random.randint(1, 100)
+    print N, M
+    points = []
+    for j in range(N):
+        next = gen_point(min_coord, max_coord)
+        while exist_point(points, next) :
+            next = gen_point(min_coord, max_coord)
+        points.append(next)
+        print random.randint(1, 30), random.randint(1, 1000), next[0], next[1]
+    for j in range(M):
+        next = gen_point(min_coord, max_coord)
+        while exist_point(points, next) :
+            next = gen_point(min_coord, max_coord)
+        points.append(next)
+        print next[0], next[1]
+

# File generators/statues.py

+import random
+
+def good_point(point, matrix):
+    if matrix[point[0]][point[1]] == '#':
+        return True
+    else:
+        return False
+
+def exist_point(points, point) :
+    for p in points:
+        if p[0] == point[0] and p[1] == point[1] :
+            return True
+    return False
+
+def gen_point(N, M):
+    i = random.randint(0, N-1)
+    j = random.randint(0, M-1)
+    return (i, j)
+
+def gen_matrix(N, M):
+    matrix = []
+    for i in range(N):
+        matrix.append("")
+        for j in range(M):
+            prob = random.random()
+            if prob < 0.1:
+                matrix[i]+='*'
+            else:
+                matrix[i]+='#'
+    return matrix
+
+def is_good(matrix):
+    count = 0
+    for row in matrix:
+        for e in row:
+            if e == '#':
+                count = count + 1
+    if count >= 3:
+        return True
+    else:
+        return False
+
+def gen_positions(matrix, N, M, n):
+    points = []
+    for i in range(n):
+        next = gen_point(N, M)
+        while exist_point(points, next) or not good_point(next, matrix):
+            next = gen_point(N, M)
+        points.append(next)
+    return points
+
+T = 100
+print T
+for i in range(T):
+    N = random.randint(3, 10)
+    M = random.randint(3, 10)
+    matrix = gen_matrix(N, M)
+    while not is_good(matrix):
+        matrix = gen_matrix(N, M)
+    point_s = gen_positions(matrix, N, M, 3)
+    point_f = gen_positions(matrix, N, M, 2)
+    print point_s[0][0], point_s[0][1], point_s[1][0], point_s[1][1], point_s[2][0], point_s[2][1]
+    print point_f[0][0], point_f[0][1], point_f[1][0], point_f[1][1]
+    print N, M, random.randint(1, 60)
+    for row in matrix:
+        print row
+
+

# File solutions/guitar-danielmaxx.cpp

         for(int i=0; i<N-K; ++i)
             jscore += jorge_notes[i];
         printf("Caso #%d: ", ic);
-        if(mscore == jscore) printf("Tie");
+        if(mscore == jscore) printf("Empate");
         else if(mscore > jscore) printf("Manuel %d", mscore);
         else printf("Jorge %d", jscore);
 //        printf(" (%d , %d) ", mscore, jscore);

# File solutions/network-zyx.cpp

 #include <deque>
 #include <limits>
 #include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
 using namespace std;

 // BEGIN CUT HERE

 int main()
 {
-  freopen("network.in", "rt", stdin);
+  //freopen("network.in", "rt", stdin);
   //freopen("network.out", "wt", stdout);
   int T;
   scanf("%d", &T);
       }
     }
     int flow = graph.CreateFlow(source, sink);
-    printf("Case #%d: %d\n", t, flow);
+    printf("Caso #%d: %d\n", t, flow);
   }
   return 0;
-}
+}

# File statement/statues_esp.tex

 \problem{Estatuas Sagradas}{statues}

 \noindent
-!Indiana Jones est\'a de vuelta! Esta vez se encuentra tras el rastro de una antigua reliquia llamada La Espada Maestra. Dentro del gran Templo del Tiempo se encuentra frente a una dificil prueba. Dos estatuas sagradas se plantan delante de \'el y le dicen: \textit{Solo aquel que logre colocarnos en el lugar correcto lograr\'a llegar a La Espada Maestra}. El problema es que Indiana cuenta con tiempo limitado para resolver el misterio pues La Gran Roca caer\'a sobre el recinto si no resuelve el acertijo en menos del tiempo T.\\
+!Indiana Jones est\'a de vuelta! Esta vez se encuentra tras el rastro de una antigua reliquia llamada \textit{El Gladius Maestro}. Dentro del gran Templo del Tiempo se encuentra frente a una dificil prueba. Dos estatuas sagradas se plantan delante de \'el y le dicen: \textit{Solo aquel que logre colocarnos en el lugar correcto lograr\'a llegar a El Gladius Maestro}. El problema es que Indiana cuenta con tiempo limitado para resolver el misterio pues La Gran Roca caer\'a sobre el recinto si no resuelve el acertijo en menos del tiempo T.\\

 %Ra\'ul tiene una biblioteca inmensa. Es tan grande que no cabe en sus repisas, a\'un cuando \'el tiene muchas en su casa. Por ende, \'el ha decidido hacer una quema de libros (a la usanza fachista) y mantener los libros importantes en sus repisas. Sin embargo, \'el no ha le\'ido todos sus libros, as\'i que no est\'a seguro de cu\'ales libros debe quedarse. Por lo tanto, decidi\'o clasificar sus libros bas\'andose en su tem\'atica y asign\'andole un valor num\'erico, por lo que cada libro ha sido clasificado y marcado en una categor\'ia. Siendo un f\'isico de profesi\'on, \'el obviamente tiene preferencia por los libros de ciencia sobre los libros de moda y cosm\'etica.\\


 \subsection*{Salida}
 \noindent
-Por cada caso de prueba usted debe imprimir una l\'inea con el string \verb|"Caso #i: "|, donde $i$ es el n\'umero del caso de prueba, seguido por un entero indicando la cantidad de pasos necesarios para que Indiana obtenga la espada maestra. En caso que Indiana no pueda obtener la Espada Maestra se debe imprimir -1.\\
+Por cada caso de prueba usted debe imprimir una l\'inea con el string \verb|"Caso #i: "|, donde $i$ es el n\'umero del caso de prueba, seguido por un entero indicando la cantidad de pasos necesarios para que Indiana obtenga El Gladius Maestro. En caso que Indiana no pueda obtener El Gladius Maestro se debe imprimir -1.\\

 \outputnotice{status}


 \begin{itemize}
 \item $T$ $\leq$ 100
-\item 1 $\leq$ $N$ $\leq$ 10
-\item 1 $\leq$ $M$ $\leq$ 10
-\item 1 $\leq$ $t$ $\leq$ 50000000
+\item 3 $\leq$ $N$ $\leq$ 10
+\item 3 $\leq$ $M$ $\leq$ 10
+\item 1 $\leq$ $t$ $\leq$ 60
 \end{itemize}