La descripción completa del problema se encuentra aquí. El problema consiste en que dado un número N de listas de números enteros positivos de tamaño 10 decir si, la lista se encuentra ordenada o no.
Entrada
La primer linea contien un número entero positivo N, donde 0 < N < 20, que indica el número de casos a procesar. Luego siguen N lineas, una por cada caso.
Cada linea contiene 10 enteros positivos menores a 100.
Salida
La salida inicia con la frase Lumberjacks: seguida de una linea por caso con la respuesta. La palabra Ordered si la lista está ordenada o la palabra Unordered si la lista está desordenada.
La solución implementada se basa en una premisa, la lista está ordenada hasta que se demuestre lo contrario.
Así, recorremos la lista en búsqueda de un par de número consecutivos que nos digan si está ordenada o no. Veamos el código.
#include <iostream>
using namespace std;
int main() {
int N;
int beards[10];
cin >> N;
cout << "Lumberjacks:\n";
while(N--) {
for (int i = 0; i < 10; i++) {
cin >> beards[i];
}
// La lista esta ordenada ascendentemente
// hasta que se demuestre lo contrario
bool sorted_asc = true;
// La lista esta ordenada descendentemente
// hasta que se demuestre lo contrario
bool sorted_desc = true;
// Recorremos la lista iniciando desde 1
// y comparamos la posición actual con la anterior
for (int i = 1; i < 10; i++) {
if (beards[i-1] > beards[i]){
// Si la posición anterior es mayor a la actual
// entonces no están ordenados ascendentemente
sorted_asc = false;
} else if (beards[i-1] < beards[i]){
// Si la posición anterior es menor que la actual
// entonces no estan ordenados descendentemente
sorted_desc = false;
}
}
// Si al terminar de comparar cada par de elementos consecutivos
// alguna variable quedó en True indica que toda la lista estaba
// ordenada ya sea ascendentemente o descendentemente
// o que todos los elementos son iguales (por tanto también está ordenada)
if (sorted_desc || sorted_asc) {
cout << "Ordered\n";
} else {
cout << "Unordered\n";
}
}
return 0;
}
Tarea
Resolver el problema sin usar un array de 10 elementos para almacenar la lista de números.