/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C/C++.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/#include <iostream>
#include <cstdlib> // Para rand()
#include <ctime> // Para time()
using namespace std;
int main() {
// 1. Configurar dimensiones (Usamos constantes para evitar errores de memoria)
const int MAX = 20;
int n, m, k;
cout << "Cantidad de pasillos: "; cin >> n;
cout << "Cantidad de estantes: "; cin >> m;
cout << "Posiciones por estante: "; cin >> k;
int matriz[MAX][MAX][MAX]; // Declaramos con un tamaño máximo seguro
srand(time(0)); // Semilla para que los números cambien en cada ejecución
// 2. Llenar almacén con valores aleatorios (0-100)
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
for(int z = 0; z < k; z++) {
matriz[i][j][z] = rand() % 101;
}
}
}
// --- LÓGICA DE BÚSQUEDA ---
int mayorInventario = -1;
int indicePasilloMayor = 0;
int valorMinimo = 101;
int minI, minJ, minK;
int contadorBajoStock = 0;
for(int i = 0; i < n; i++) {
int sumaPasillo = 0; // Para calcular el total del pasillo actual
for(int j = 0; j < m; j++) {
for(int z = 0; z < k; z++) {
int actual = matriz[i][j][z];
// Acumular para el inventario del pasillo
sumaPasillo += actual;
// Buscar el valor mínimo y guardar su posición (i, j, k)
if(actual < valorMinimo) {
valorMinimo = actual;
minI = i; minJ = j; minK = z;
}
// Contar posiciones con menos de 10 productos
if(actual < 10) {
contadorBajoStock++;
}
}
}
// Comparar inventario total del pasillo
if(sumaPasillo > mayorInventario) {
mayorInventario = sumaPasillo;
indicePasilloMayor = i;
}
}
// 3. RESULTADOS
cout << "\n--- RESULTADOS DEL ALMACEN ---" << endl;
cout << "1. Pasillo con mayor inventario: Pasillo " << indicePasilloMayor
<< " (Total: " << mayorInventario << " productos)" << endl;
cout << "2. Producto con valor minimo: " << valorMinimo
<< " en posicion (Pasillo: " << minI << ", Estante: " << minJ << ", Pos: " << minK << ")" << endl;
cout << "3. Cantidad de posiciones que necesitan stock (< 10): " << contadorBajoStock << endl;
return 0;
}