From 03bbea156afd0f3bc674d532ec262493f19446f4 Mon Sep 17 00:00:00 2001 From: InigoGutierrez Date: Fri, 27 Dec 2019 00:56:28 +0100 Subject: Resuelto 244 en c++: Reinas atacadas. --- c/244_reinasAtacadas.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/c/244_reinasAtacadas.cpp b/c/244_reinasAtacadas.cpp index 6b3f2f7..c7a9254 100644 --- a/c/244_reinasAtacadas.cpp +++ b/c/244_reinasAtacadas.cpp @@ -1,33 +1,37 @@ #include +#include int main(void) { int lado, reinas; - int *filas, *columnas; + int row, col; + std::vector filas, columnas; int i, j; int atacadas; std::cin >> lado; std::cin >> reinas; while (lado) { // Leer tamaño, número de reinas y posición de cada una - filas = new int [lado]; - columnas = new int [lado]; + filas.clear(); + columnas.clear(); for (i = 0; i < reinas; i++) { - std::cin >> filas[i]; - std::cin >> columnas[i]; + std::cin >> row; + std::cin >> col; + filas.push_back(row); + columnas.push_back(col); } atacadas = 0; for (i = 0; i < reinas-1 && !atacadas; i++) { for (j = i+1; j < reinas && !atacadas; j++) { - // Comprobar choques cartesianos: no hay reinas que compartan fila o columna + // Comprobar choques cartesianos: no hay reinas que compartan + // fila o columna if (filas[i] == filas[j] || columnas[i] == columnas[j]) atacadas = 1; - // Comprobar choques diagonales: no hay la misma distancia entre la fila y la columna para dos reinas + // Comprobar choques diagonales: no hay la misma distancia + // entre la fila y la columna para dos reinas else if (abs(filas[i] - filas[j]) == abs(columnas[i] - columnas[j])) atacadas = 1; } } - delete [] filas; - delete [] columnas; if (atacadas) std::cout << "SI\n"; else -- cgit v1.2.1