diff options
author | InigoGutierrez <inigogf.95@gmail.com> | 2019-12-27 00:56:28 +0100 |
---|---|---|
committer | InigoGutierrez <inigogf.95@gmail.com> | 2019-12-27 00:56:28 +0100 |
commit | 03bbea156afd0f3bc674d532ec262493f19446f4 (patch) | |
tree | e06a46d2afd6893954f69271b618ba6d0d41af97 /c | |
parent | f139d0d9d1c4061909f5f36012cb9f7d0698cc9e (diff) | |
download | AceptaElReto-03bbea156afd0f3bc674d532ec262493f19446f4.tar.gz AceptaElReto-03bbea156afd0f3bc674d532ec262493f19446f4.zip |
Resuelto 244 en c++: Reinas atacadas.
Diffstat (limited to 'c')
-rw-r--r-- | c/244_reinasAtacadas.cpp | 22 |
1 files 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 <iostream> +#include <vector> int main(void) { int lado, reinas; - int *filas, *columnas; + int row, col; + std::vector<int> 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 |