Sistema de gestión de tareas con prioridades

Go Medium structs

Tarea «Sistema de gestión de tareas con prioridades»

Desarrolle un programa para gestionar una lista de tareas. Cada tarea se describe mediante una estructura Task con los campos: ID (int), Title (string), Priority (int) y Status (string). El programa debe leer la cantidad de tareas, luego las tareas mismas. Después de esto, es necesario mostrar todas las tareas, ordenadas por prioridad (de forma ascendente), y para tareas con la misma prioridad, ordenadas por ID (de forma ascendente). Muestre cada tarea en el formato: ID: Title [Priority] - Status.

Formato de entrada

Primera línea: un número entero N (1 ≤ N ≤ 100) — la cantidad de tareas. Luego, cada una de las N líneas contiene: ID (número entero), Title (cadena sin espacios), Priority (número entero), Status (cadena sin espacios), separados por un espacio.

Formato de salida

N líneas, cada una en el formato: ID: Title [Priority] - Status. Las líneas están ordenadas por prioridad (de forma ascendente), y en caso de igual prioridad, por ID (de forma ascendente).

Ejemplos

Ejemplo 1

ENTRADA
3 1 TaskA 2 Active 2 TaskB 1 Completed 3 TaskC 2 Pending
SALIDA
2: TaskB [1] - Completed 1: TaskA [2] - Active 3: TaskC [2] - Pending

Ejemplo 2

ENTRADA
listen silent
SALIDA
YES

Ejemplo 3

ENTRADA
2 101 Alpha 5 High 102 Beta 3 Low
SALIDA
102: Beta [3] - Low 101: Alpha [5] - High

Ejemplo 4

ENTRADA
Hello Olelh
SALIDA
YES
main.go