#include <iostream>
#include <vector>
#include <string>
#include <map>
// Struktur data untuk menyimpan informasi pendonor
struct Pendonor {
std::string nama;
std::string kodeDesa;
};
int main() {
// Data pendonor (contoh)
std::vector<Pendonor> daftarPendonor = {
{"Andi", "D001"},
{"Budi", "D002"},
{"Citra", "D001"},
{"Dewi", "D003"},
{"Eka", "D002"},
{"Feri", "D001"}
};
// Menggunakan map untuk menghitung jumlah pendonor di setiap desa
std::map<std::string, int> jumlahPendonorPerDesa;
// Iterasi melalui daftar pendonor untuk menghitung
for (const auto& pendonor : daftarPendonor) {
jumlahPendonorPerDesa[pendonor.kodeDesa]++;
}
// Menampilkan hasil
std::cout << "Jumlah Pendonor Darah per Desa:" << std::endl;
for (const auto& pair : jumlahPendonorPerDesa) {
std::cout << "Desa " << pair.first << ": " << pair.second << " pendonor" << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgoKLy8gU3RydWt0dXIgZGF0YSB1bnR1ayBtZW55aW1wYW4gaW5mb3JtYXNpIHBlbmRvbm9yCnN0cnVjdCBQZW5kb25vciB7CiAgICBzdGQ6OnN0cmluZyBuYW1hOwogICAgc3RkOjpzdHJpbmcga29kZURlc2E7Cn07CgppbnQgbWFpbigpIHsKICAgIC8vIERhdGEgcGVuZG9ub3IgKGNvbnRvaCkKICAgIHN0ZDo6dmVjdG9yPFBlbmRvbm9yPiBkYWZ0YXJQZW5kb25vciA9IHsKICAgICAgICB7IkFuZGkiLCAiRDAwMSJ9LAogICAgICAgIHsiQnVkaSIsICJEMDAyIn0sCiAgICAgICAgeyJDaXRyYSIsICJEMDAxIn0sCiAgICAgICAgeyJEZXdpIiwgIkQwMDMifSwKICAgICAgICB7IkVrYSIsICJEMDAyIn0sCiAgICAgICAgeyJGZXJpIiwgIkQwMDEifQogICAgfTsKCiAgICAvLyBNZW5nZ3VuYWthbiBtYXAgdW50dWsgbWVuZ2hpdHVuZyBqdW1sYWggcGVuZG9ub3IgZGkgc2V0aWFwIGRlc2EKICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBpbnQ+IGp1bWxhaFBlbmRvbm9yUGVyRGVzYTsKCiAgICAvLyBJdGVyYXNpIG1lbGFsdWkgZGFmdGFyIHBlbmRvbm9yIHVudHVrIG1lbmdoaXR1bmcKICAgIGZvciAoY29uc3QgYXV0byYgcGVuZG9ub3IgOiBkYWZ0YXJQZW5kb25vcikgewogICAgICAgIGp1bWxhaFBlbmRvbm9yUGVyRGVzYVtwZW5kb25vci5rb2RlRGVzYV0rKzsKICAgIH0KCiAgICAvLyBNZW5hbXBpbGthbiBoYXNpbAogICAgc3RkOjpjb3V0IDw8ICJKdW1sYWggUGVuZG9ub3IgRGFyYWggcGVyIERlc2E6IiA8PCBzdGQ6OmVuZGw7CiAgICBmb3IgKGNvbnN0IGF1dG8mIHBhaXIgOiBqdW1sYWhQZW5kb25vclBlckRlc2EpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkRlc2EgIiA8PCBwYWlyLmZpcnN0IDw8ICI6ICIgPDwgcGFpci5zZWNvbmQgPDwgIiBwZW5kb25vciIgPDwgc3RkOjplbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9