fork download
  1. #include <iostream>
  2. #include <map> // Untuk menyimpan jumlah donor per desa
  3.  
  4. int main() {
  5. int n; // Jumlah total data donor yang akan dibaca
  6.  
  7. // 1. Baca angka pertama, yaitu jumlah total donor (8)
  8. std::cin >> n;
  9.  
  10. // 2. Gunakan std::map untuk menghitung donor.
  11. // Kunci (key) adalah ID desa, Nilai (value) adalah jumlahnya.
  12. std::map<int, int> jumlah_donor;
  13.  
  14. // 3. Ulangi sebanyak n kali (8 kali)
  15. for (int i = 0; i < n; ++i) {
  16. int id_desa;
  17. // Baca angka pertama dari setiap data donor, ini adalah ID desa
  18. std::cin >> id_desa;
  19.  
  20. // Berdasarkan analisis input Anda, data pertama memiliki 3 angka ekstra,
  21. // dan 7 data sisanya masing-masing memiliki 2 angka ekstra.
  22. // Kita perlu membaca angka-angka ini agar input stream berpindah
  23. // ke ID desa berikutnya.
  24.  
  25. int dummy1, dummy2, dummy3;
  26.  
  27. if (i == 0) {
  28. // Ini adalah data donor pertama (3, 3, 1, 150)
  29. // Kita sudah baca '3' (id_desa), jadi kita baca 3 angka sisanya.
  30. std::cin >> dummy1 >> dummy2 >> dummy3; // Membaca 3, 1, 150
  31. } else {
  32. // Ini adalah data donor ke-2 hingga ke-8 (misal: 1, 2, 250)
  33. // Kita sudah baca '1' (id_desa), jadi kita baca 2 angka sisanya.
  34. std::cin >> dummy1 >> dummy2; // Membaca 2, 250 (lalu 1, 300, dst.)
  35. }
  36.  
  37. // 4. Tambahkan hitungan untuk desa yang sesuai
  38. jumlah_donor[id_desa]++;
  39. }
  40.  
  41. // 5. Cetak hasilnya sesuai format yang diminta
  42. std::cout << "desa 1:" << jumlah_donor[1]
  43. << " ,desa 2:" << jumlah_donor[2]
  44. << ", desa 3:" << jumlah_donor[3]
  45. << std::endl;
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0.01s 5320KB
stdin
8
3 
3 1 150
1 2 250
3 1 300
1 3 450
2 2 200
3 4 350
1 4 500
2 1 500
stdout
desa 1:3 ,desa 2:2, desa 3:3