fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6. int N, M; // N = jumlah pendonor, M = jumlah desa
  7. cout << "Masukkan jumlah pendonor DDS (1-1000): ";
  8. cin >> N;
  9. cout << "Masukkan jumlah desa (1-10): ";
  10. cin >> M;
  11.  
  12. // vektor 3D: M desa, 4 gol darah, 2 elemen (jumlah pendonor, total volume)
  13. vector<vector<vector<int>>> pendonor(M, vector<vector<int>>(4, vector<int>(2, 0)));
  14.  
  15. cout << "Masukkan kode desa, golongan darah (1-4), dan volume darah (ml):" << endl;
  16. for (int i = 0; i < N; i++) {
  17. int kodeDesa, golonganDarah, volumeDarah;
  18. cin >> kodeDesa >> golonganDarah >> volumeDarah;
  19. // Tambah jumlah pendonor dan volume darah sesuai index
  20. pendonor[kodeDesa - 1][golonganDarah - 1][0]++;
  21. pendonor[kodeDesa - 1][golonganDarah - 1][1] += volumeDarah;
  22. }
  23.  
  24. // Cetak jumlah pendonor dan total volume darah per desa per golongan darah
  25. for (int desa = 0; desa < M; desa++) {
  26. cout << "Desa " << desa + 1 << ":" << endl;
  27. cout << "Golongan A: " << pendonor[desa][0][0] << " pendonor, total volume "
  28. << pendonor[desa][0][1] << " ml" << endl;
  29. cout << "Golongan B: " << pendonor[desa][1][0] << " pendonor, total volume "
  30. << pendonor[desa][1][1] << " ml" << endl;
  31. cout << "Golongan AB: " << pendonor[desa][2][0] << " pendonor, total volume "
  32. << pendonor[desa][2][1] << " ml" << endl;
  33. cout << "Golongan O: " << pendonor[desa][3][0] << " pendonor, total volume "
  34. << pendonor[desa][3][1] << " ml" << endl;
  35. cout << endl;
  36. }
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0.01s 5284KB
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
Masukkan jumlah pendonor DDS (1-1000): Masukkan jumlah desa (1-10): Masukkan kode desa, golongan darah (1-4), dan volume darah (ml):
Desa 1:
Golongan A: 0 pendonor, total volume 0 ml
Golongan B: 1 pendonor, total volume 250 ml
Golongan AB: 1 pendonor, total volume 450 ml
Golongan O: 1 pendonor, total volume 500 ml

Desa 2:
Golongan A: 1 pendonor, total volume 500 ml
Golongan B: 1 pendonor, total volume 200 ml
Golongan AB: 0 pendonor, total volume 0 ml
Golongan O: 0 pendonor, total volume 0 ml

Desa 3:
Golongan A: 2 pendonor, total volume 450 ml
Golongan B: 0 pendonor, total volume 0 ml
Golongan AB: 0 pendonor, total volume 0 ml
Golongan O: 1 pendonor, total volume 350 ml