Surveillance réseau : agrégation de paquets avec horodatage
Rust
Hard
structs
Tâche «Surveillance réseau : agrégation de paquets avec horodatage»
Développez une structure Packet pour stocker les données d’un paquet réseau : identifiant (u32), taille (u32), horodatage (u64, en millisecondes). Implémentez la fonction aggregate qui prend un vecteur de paquets et retourne un vecteur de structures AggregatedInfo : intervalle de temps (start_ts, end_ts, où la différence <= 1000 ms), nombre de paquets, taille totale, taille moyenne (arrondie à l’entier). Les intervalles ne doivent pas se chevaucher et couvrir tous les paquets. S’il n’y a pas de paquets, retourner un vecteur vide. Il est garanti que les paquets sont déjà triés par horodatage croissant.
Format d\ entrée
Première ligne : un entier n (0 <= n <= 10000) — le nombre de paquets. Ensuite n lignes, chacune : id size timestamp (entiers séparés par un espace).
Format de sortie
Pour chaque intervalle, affichez une ligne : start_ts end_ts count total_size avg_size. S’il n’y a pas de paquets, affichez 'No data'.
Exemples
Exemple 1
ENTRÉE
1 10
SORTIE
30
main.rs