import java.util.List;

public class RaporTerpisah {
    public static void main(String[] args) {
        List<Integer> nilai = List.of(78, 85, 90, 66, 74);
        StatistikNilai statistik = new StatistikNilai(nilai);
        PapanRapor papan = new PapanRapor(statistik);
        System.out.println(papan.tampilkan());
    }
}

// Tanggung jawab 1: menghitung statistik nilai
class StatistikNilai {
    private final List<Integer> nilai;

    StatistikNilai(List<Integer> nilai) {
        this.nilai = List.copyOf(nilai);
    }

    double rataRata() {
        return nilai.stream().mapToInt(Integer::intValue).average().orElse(0);
    }

    int tertinggi() {
        return nilai.stream().mapToInt(Integer::intValue).max().orElse(0);
    }
}

// Tanggung jawab 2: merangkai tampilan teks
class PapanRapor {
    private final StatistikNilai statistik;

    PapanRapor(StatistikNilai statistik) {
        this.statistik = statistik;
    }

    String tampilkan() {
        return String.format("Rata-rata: %.1f%nNilai tertinggi: %d",
                statistik.rataRata(), statistik.tertinggi());
    }
}
