fork download
  1. /******************************************************************************
  2.  
  3. Welcome to GDB Online.
  4. GDB online is an online compiler and debugger tool for C/C++.
  5. Code, Compile, Run and Debug online from anywhere in world.
  6.  
  7. *******************************************************************************/#include <iostream>
  8. #include <cstdlib> // Para rand()
  9. #include <ctime> // Para time()
  10.  
  11. using namespace std;
  12.  
  13. int main() {
  14. // 1. Configurar dimensiones (Usamos constantes para evitar errores de memoria)
  15. const int MAX = 20;
  16. int n, m, k;
  17.  
  18. cout << "Cantidad de pasillos: "; cin >> n;
  19. cout << "Cantidad de estantes: "; cin >> m;
  20. cout << "Posiciones por estante: "; cin >> k;
  21.  
  22. int matriz[MAX][MAX][MAX]; // Declaramos con un tamaño máximo seguro
  23. srand(time(0)); // Semilla para que los números cambien en cada ejecución
  24.  
  25. // 2. Llenar almacén con valores aleatorios (0-100)
  26. for(int i = 0; i < n; i++) {
  27. for(int j = 0; j < m; j++) {
  28. for(int z = 0; z < k; z++) {
  29. matriz[i][j][z] = rand() % 101;
  30. }
  31. }
  32. }
  33.  
  34. // --- LÓGICA DE BÚSQUEDA ---
  35. int mayorInventario = -1;
  36. int indicePasilloMayor = 0;
  37.  
  38. int valorMinimo = 101;
  39. int minI, minJ, minK;
  40.  
  41. int contadorBajoStock = 0;
  42.  
  43. for(int i = 0; i < n; i++) {
  44. int sumaPasillo = 0; // Para calcular el total del pasillo actual
  45.  
  46. for(int j = 0; j < m; j++) {
  47. for(int z = 0; z < k; z++) {
  48. int actual = matriz[i][j][z];
  49.  
  50. // Acumular para el inventario del pasillo
  51. sumaPasillo += actual;
  52.  
  53. // Buscar el valor mínimo y guardar su posición (i, j, k)
  54. if(actual < valorMinimo) {
  55. valorMinimo = actual;
  56. minI = i; minJ = j; minK = z;
  57. }
  58.  
  59. // Contar posiciones con menos de 10 productos
  60. if(actual < 10) {
  61. contadorBajoStock++;
  62. }
  63. }
  64. }
  65.  
  66. // Comparar inventario total del pasillo
  67. if(sumaPasillo > mayorInventario) {
  68. mayorInventario = sumaPasillo;
  69. indicePasilloMayor = i;
  70. }
  71. }
  72.  
  73. // 3. RESULTADOS
  74. cout << "\n--- RESULTADOS DEL ALMACEN ---" << endl;
  75. cout << "1. Pasillo con mayor inventario: Pasillo " << indicePasilloMayor
  76. << " (Total: " << mayorInventario << " productos)" << endl;
  77.  
  78. cout << "2. Producto con valor minimo: " << valorMinimo
  79. << " en posicion (Pasillo: " << minI << ", Estante: " << minJ << ", Pos: " << minK << ")" << endl;
  80.  
  81. cout << "3. Cantidad de posiciones que necesitan stock (< 10): " << contadorBajoStock << endl;
  82.  
  83. return 0;
  84. }
  85.  
Success #stdin #stdout 0s 5316KB
stdin
45
stdout
Cantidad de pasillos: Cantidad de estantes: Posiciones por estante: 
--- RESULTADOS DEL ALMACEN ---
1. Pasillo con mayor inventario: Pasillo 0 (Total: 0 productos)
2. Producto con valor minimo: 101 en posicion (Pasillo: -1879866128, Estante: 0, Pos: 0)
3. Cantidad de posiciones que necesitan stock (< 10): 0