import java.util.*;

public class AntreanTugas {
    record Tugas(String nama, int prioritas) { }

    public static void main(String[] args) {
        // Prioritas lebih kecil berarti lebih mendesak (1 paling depan).
        // Angka sama dipecah dengan urutan nama.
        Comparator<Tugas> urutan =
                Comparator.comparingInt(Tugas::prioritas)
                          .thenComparing(Tugas::nama);

        PriorityQueue<Tugas> antrean = new PriorityQueue<>(urutan);
        antrean.offer(new Tugas("Cuci piring", 3));
        antrean.offer(new Tugas("Bayar tagihan", 1));
        antrean.offer(new Tugas("Belanja", 2));
        antrean.offer(new Tugas("Kirim laporan", 1));

        System.out.println("Berikutnya (peek): " + antrean.peek());

        while (!antrean.isEmpty()) {
            Tugas tugas = antrean.poll();
            System.out.println("Mengerjakan: " + tugas);
        }
    }
}
