#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