#include <iostream>
#include <cstdlib>  // Para usar rand()
#include <ctime>    // Para inicializar la semilla de rand()

using namespace std;

const int DIAS_SEMANA = 7;  // Número de días en la semana
const int NUM_VENDEDORES = 1; // Solo tenemos un vendedor en este caso

int main() {
    // Datos del vendedor 1 (principiante)
    const double precioPrenda = 25.0;  // Precio de cada prenda
    const double sueldoBase = 800.0;   // Sueldo base del vendedor
    const double porcentajeVentas = 0.10; // 10% sobre las ventas

    // Arreglo para almacenar las ventas de cada vendedor durante la semana
    int ventas[NUM_VENDEDORES][DIAS_SEMANA]; // Número de prendas vendidas cada día por el vendedor

    // Inicialización de la semilla para la generación de números aleatorios
    srand(time(0));

    // Paso 1: Generar las ventas diarias del vendedor 1 (de 3 a 8 prendas por día)
    for (int i = 0; i < NUM_VENDEDORES; ++i) {
        cout << "Ventas del vendedor " << i + 1 << " (principiante):\n";
        for (int j = 0; j < DIAS_SEMANA; ++j) {
            // Generar un número aleatorio de prendas vendidas entre 3 y 8
            ventas[i][j] = rand() % 6 + 3; // rand() % 6 genera un número entre 0 y 5, luego le sumamos 3
            cout << "Día " << j + 1 << ": " << ventas[i][j] << " prendas\n";
        }
    }

    // Paso 2: Ordenar las ventas de cada vendedor de mayor a menor utilizando Bubble Sort
    for (int i = 0; i < NUM_VENDEDORES; ++i) {
        for (int j = 0; j < DIAS_SEMANA - 1; ++j) {
            for (int k = 0; k < DIAS_SEMANA - j - 1; ++k) {
                if (ventas[i][k] < ventas[i][k + 1]) {
                    // Intercambiar las ventas si están en el orden incorrecto
                    int temp = ventas[i][k];
                    ventas[i][k] = ventas[i][k + 1];
                    ventas[i][k + 1] = temp;
                }
            }
        }
    }

    // Paso 3: Mostrar las ventas ordenadas de mayor a menor por vendedor
    for (int i = 0; i < NUM_VENDEDORES; ++i) {
        cout << "\nVentas ordenadas del vendedor " << i + 1 << " (de mayor a menor):\n";
        for (int j = 0; j < DIAS_SEMANA; ++j) {
            cout << "Día " << j + 1 << ": " << ventas[i][j] << " prendas\n";
        }
    }

    // Paso 4: Calcular el sueldo total del vendedor con base en sus ventas
    for (int i = 0; i < NUM_VENDEDORES; ++i) {
        double totalVentas = 0.0;
        for (int j = 0; j < DIAS_SEMANA; ++j) {
            totalVentas += ventas[i][j] * precioPrenda;  // Calculamos el total de ventas en dinero
        }
        
        // Calcular el sueldo total (sueldo base + porcentaje de las ventas)
        double sueldoTotal = sueldoBase + (totalVentas * porcentajeVentas);
        
        cout << "\nEl sueldo total del vendedor " << i + 1 << " es: $" << sueldoTotal << endl;
        cout << "Total de ventas: $" << totalVentas << endl;
    }

    return 0;
}