Untitled
unknown
c_cpp
3 years ago
2.9 kB
11
Indexable
#include <iostream>
#define MAX 50
using namespace std;
int S[MAX]; // solucion
int c[MAX]; // comienzo de cada actividad
int f[MAX]; // final de cada actividad
void ingresar_actividades(int n)
{
for (int i = 0; i < n; i++)
{
do
{
cout << " Actividad " << i + 1 << endl << endl;
cout << "\tinicio : ";
cin >> c[i];
cout << "\tfinal : ";
cin >> f[i];
cout << endl;
} while (c[i] > f[i]); // el inicio no puede ser mayor que el final
}
}
void mostrar_datos(int n)
{
cout << " Actividades ingresadas. " << endl << endl;
cout << "\t\t Ai : ";
for (int i = 0; i < n; i++)
cout << i + 1 << ' ';
cout << endl << "\t\t-------------------------" << endl;
cout << "\t\t inicio : ";
for (int i = 0; i < n; i++)
cout << c[i] << ' ';
cout << endl;
cout << "\t\t fin : ";
for (int i = 0; i < n; i++)
cout << f[i] << ' ';
}
void Ordenar(int n)
{
int aux1, aux2, aux3, band = 1;
for (int i = n - 1; i > 0 && band == 1; i--)
{
band = 0;
for (int j = 0; j < i; j++)
{
if (f[j] > f[j + 1])
{
aux1 = f[j];
f[j] = f[j + 1];
f[j + 1] = aux1;
aux2 = c[j];
c[j] = c[j + 1];
c[j + 1] = aux2;
band = 1;
}
}
}
mostrar_datos(n);
}
void devolver_solucion()
{
cout << endl << " Solucion voraz: \n\n\t";
int i = 0;
while (1)
{
cout << "A" << S[i] + 1 << "";
i++;
if (S[i] == 0)
break;
}
}
void algoritmo_seleccion(int n)
{
Ordenar(n);
int z, k = 1;
S[0] = 0;
z = 0;
for (int i = 1; i < n; i++)
{
if (c[i] >= f[z])
{
S[k] = i; // actividad seleccionada
z = i;
k++;
}
}
devolver_solucion();
}
void pantalla()
{
cout << endl;
cout << "\t ---------------------------------------------- " << endl;
cout << "\t ALGORITMO SELECCION DE ACTIVIDADES " << endl;
cout << "\t ---------------------------------------------- " << endl;
}
int main()
{
system("color 0b");
pantalla();
int N;
cout << " Ingrese numero de actividades: ";
cin >> N;
cout << endl;
ingresar_actividades(N);
system("cls");
pantalla();
algoritmo_seleccion(N);
cout << endl
<< endl;
system("pause");
return 0;
}Editor is loading...