#include <stdio.h>
#include <string.h>
 
// Struktur untuk menyimpan data teman
typedef struct {
    char nama[50];
    int target;
    int pencapaian;
    float prediksi;
} Teman;
 
// Fungsi untuk menghitung prediksi
float hitungPrediksi(int pencapaian, int target, int sisaWaktu, int waktuLalu) {
    // Asumsi: Linear growth
    float laju = (float)pencapaian / waktuLalu;
    float prediksi = pencapaian + laju * sisaWaktu;
 
    // Batasi prediksi agar tidak melebihi target
    if (prediksi > target) {
        prediksi = target;
    }
 
    return prediksi;
}
 
int main() {
    // Data teman-teman
    Teman teman[] = {
        {"Boro", 100, 60, 0.0},
        {"Toni", 120, 70, 0.0},
        {"Siti", 150, 90, 0.0}
    };
    int jumlahTeman = sizeof(teman) / sizeof(teman[0]);
 
    // Waktu yang sudah berjalan dan sisa waktu
    int waktuLalu = 3; // Misalnya, 3 bulan
    int sisaWaktu = 2; // Misalnya, 2 bulan lagi
 
    // Hitung dan tampilkan prediksi
    printf("Prediksi Pencapaian Target:\n");     for (int i = 0; i < jumlahTeman; i++) {
        teman[i].prediksi = hitungPrediksi(teman[i].pencapaian, teman[i].target, sisaWaktu, waktuLalu);
        printf("%s: Target = %d, Pencapaian = %d, Prediksi = %.2f\n",                teman[i].nama, teman[i].target, teman[i].pencapaian, teman[i].prediksi);
    }
 
    return 0;
}
				I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCi8vIFN0cnVrdHVyIHVudHVrIG1lbnlpbXBhbiBkYXRhIHRlbWFuCnR5cGVkZWYgc3RydWN0IHsKICAgIGNoYXIgbmFtYVs1MF07CiAgICBpbnQgdGFyZ2V0OwogICAgaW50IHBlbmNhcGFpYW47CiAgICBmbG9hdCBwcmVkaWtzaTsKfSBUZW1hbjsKCi8vIEZ1bmdzaSB1bnR1ayBtZW5naGl0dW5nIHByZWRpa3NpCmZsb2F0IGhpdHVuZ1ByZWRpa3NpKGludCBwZW5jYXBhaWFuLCBpbnQgdGFyZ2V0LCBpbnQgc2lzYVdha3R1LCBpbnQgd2FrdHVMYWx1KSB7CiAgICAvLyBBc3Vtc2k6IExpbmVhciBncm93dGgKICAgIGZsb2F0IGxhanUgPSAoZmxvYXQpcGVuY2FwYWlhbiAvIHdha3R1TGFsdTsKICAgIGZsb2F0IHByZWRpa3NpID0gcGVuY2FwYWlhbiArIGxhanUgKiBzaXNhV2FrdHU7CgogICAgLy8gQmF0YXNpIHByZWRpa3NpIGFnYXIgdGlkYWsgbWVsZWJpaGkgdGFyZ2V0CiAgICBpZiAocHJlZGlrc2kgPiB0YXJnZXQpIHsKICAgICAgICBwcmVkaWtzaSA9IHRhcmdldDsKICAgIH0KCiAgICByZXR1cm4gcHJlZGlrc2k7Cn0KCmludCBtYWluKCkgewogICAgLy8gRGF0YSB0ZW1hbi10ZW1hbgogICAgVGVtYW4gdGVtYW5bXSA9IHsKICAgICAgICB7IkJvcm8iLCAxMDAsIDYwLCAwLjB9LAogICAgICAgIHsiVG9uaSIsIDEyMCwgNzAsIDAuMH0sCiAgICAgICAgeyJTaXRpIiwgMTUwLCA5MCwgMC4wfQogICAgfTsKICAgIGludCBqdW1sYWhUZW1hbiA9IHNpemVvZih0ZW1hbikgLyBzaXplb2YodGVtYW5bMF0pOwoKICAgIC8vIFdha3R1IHlhbmcgc3VkYWggYmVyamFsYW4gZGFuIHNpc2Egd2FrdHUKICAgIGludCB3YWt0dUxhbHUgPSAzOyAvLyBNaXNhbG55YSwgMyBidWxhbgogICAgaW50IHNpc2FXYWt0dSA9IDI7IC8vIE1pc2FsbnlhLCAyIGJ1bGFuIGxhZ2kKCiAgICAvLyBIaXR1bmcgZGFuIHRhbXBpbGthbiBwcmVkaWtzaQogICAgcHJpbnRmKCJQcmVkaWtzaSBQZW5jYXBhaWFuIFRhcmdldDpcbiIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBqdW1sYWhUZW1hbjsgaSsrKSB7CiAgICAgICAgdGVtYW5baV0ucHJlZGlrc2kgPSBoaXR1bmdQcmVkaWtzaSh0ZW1hbltpXS5wZW5jYXBhaWFuLCB0ZW1hbltpXS50YXJnZXQsIHNpc2FXYWt0dSwgd2FrdHVMYWx1KTsKICAgICAgICBwcmludGYoIiVzOiBUYXJnZXQgPSAlZCwgUGVuY2FwYWlhbiA9ICVkLCBQcmVkaWtzaSA9ICUuMmZcbiIsCiAgICAgICAgICAgICAgIHRlbWFuW2ldLm5hbWEsIHRlbWFuW2ldLnRhcmdldCwgdGVtYW5baV0ucGVuY2FwYWlhbiwgdGVtYW5baV0ucHJlZGlrc2kpOwogICAgfQoKICAgIHJldHVybiAwOwp9