fork download
  1. #include <iostream>
  2. #include <map>
  3. using namespace std;
  4.  
  5. int main() {
  6. int n, m;
  7. cin >> n >> m; // n = jumlah pendonor, m = jumlah desa
  8.  
  9. // Map dua tingkat: desa -> golongan darah -> pair(jumlah pendonor, total volume)
  10. map<int, map<int, pair<int,int>>> data;
  11.  
  12. for (int i = 0; i < n; i++) {
  13. int desa, golDarah, volume;
  14. cin >> desa >> golDarah >> volume;
  15. data[desa][golDarah].first++; // jumlah pendonor
  16. data[desa][golDarah].second += volume; // total volume darah ml
  17. }
  18.  
  19. for (int desa = 1; desa <= m; desa++) {
  20. cout << "Desa " << desa << ":\n";
  21. if (data.find(desa) == data.end()) {
  22. cout << " Tidak ada data pendonor\n";
  23. continue;
  24. }
  25. for (auto& gol : data[desa]) {
  26. cout << " Golongan darah " << gol.first << ": "
  27. << gol.second.first << " pendonor, total volume "
  28. << gol.second.second << " ml\n";
  29. }
  30. }
  31.  
  32. return 0;
  33. }
  34.  
Success #stdin #stdout 0s 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:
  Golongan darah 2: 1 pendonor, total volume 250 ml
  Golongan darah 3: 1 pendonor, total volume 450 ml
  Golongan darah 4: 1 pendonor, total volume 500 ml
Desa 2:
  Golongan darah 1: 1 pendonor, total volume 500 ml
  Golongan darah 2: 1 pendonor, total volume 200 ml
Desa 3:
  Golongan darah 1: 2 pendonor, total volume 450 ml
  Golongan darah 4: 1 pendonor, total volume 350 ml