fork download
  1.  
  2. #include <stdio.h>
  3.  
  4. int main() {
  5. int N, M, D, G, V;
  6. // N: Jumlah Pendonor, M: Jumlah Desa
  7.  
  8. // Array 2D untuk menyimpan [Jumlah Donor] dan [Total Volume]
  9. // Ukuran disesuaikan: [Desa Max + 1][Gol Darah Max + 1]
  10. int A[101][5] = {0}, B[101][5] = {0};
  11. char *GOL[] = {"", "A", "B", "AB", "O"};
  12.  
  13. scanf("%d %d", &N, &M); // Membaca N dan M sekaligus
  14.  
  15. // Loop Input dan Agregasi
  16. for (int i = 0; i < N; i++) {
  17. scanf("%d %d %d", &D, &G, &V); // Membaca Desa (D), Golongan (G), Volume (V)
  18. A[D][G]++; // Menambah Jumlah (A)
  19. B[D][G] += V; // Menambah Volume (B)
  20. }
  21.  
  22. // Loop Output
  23. for (int i = 1; i <= M; i++) {
  24. printf("Desa %d:\n", i);
  25. for (int g = 1; g <= 4; g++) {
  26. printf(" %s: %d, %d \n", GOL[g], A[i][g], B[i][g]);
  27. }
  28. }
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0.01s 5276KB
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:
 A: 0, 0 
 B: 1, 250 
 AB: 1, 450 
 O: 1, 500 
Desa 2:
 A: 1, 500 
 B: 1, 200 
 AB: 0, 0 
 O: 0, 0 
Desa 3:
 A: 2, 450 
 B: 0, 0 
 AB: 0, 0 
 O: 1, 350