Panji Sukma D 28

Anda mungkin juga menyukai

Anda di halaman 1dari 2

Nama:Panji Sukma Diwangkara

Kelas:Xi A
Absen:28

Subproblem 1

#include <iostream>
#include <vector>
using namespace std;

int main() {
int N, M;
cout << "Masukkan jumlah pendonor DDS (1-1000): ";
cin >> N; // jumlah DDS
cout << "Masukkan jumlah desa (1 - 10): ";
cin >> M; // jumlah desa

vector<vector<int>> pendonor(M, vector<int>(4, 0));


cout << "Masukkan kode desa, golongan darah (1-4), dan volume darah (0-500 ml): " << endl;
for (int i = 0; i < N; i++) {
int kodeDesa, golonganDarah, volumeDarah;
cin >> kodeDesa >> golonganDarah >> volumeDarah;
pendonor[kodeDesa - 1][golonganDarah - 1]++;
}
cout << "Berikut banyaknya pendonor pada masing-masing desa: " << endl;
for (int i = 0; i < M; i++) {
int totalPendonor = 0;
for (int j = 0; j < 4; j++) {
totalPendonor += pendonor[i][j];
}
cout << "Desa " << i + 1 << ": " << totalPendonor << "Pendonor " << endl;
}

return 0;
}

Subproblem 2

#include <iostream>
#include <vector>
#include <map>

using namespace std;

int main() {
int N, M;
cout << "Masukkan jumlah DDS: ";
cin >> N;
cout << "Masukkan jumlah desa: ";
cin >> M;

vector<map<string, pair<int, int>>> desa_data(M + 1);

for (int i = 0; i < N; i++) {


int kode_desa;
string golongan_darah;
string volume_darah;

cout << "Masukkan kode desa, golongan darah (A/B/AB/O), dan volume darah yang dapat
didonorkan (contoh: 1 A 250): ";
cin >> kode_desa >> golongan_darah >> volume_darah;

if (golongan_darah == "A" || golongan_darah == "B" || golongan_darah == "AB" ||


golongan_darah == "O") {
desa_data[kode_desa][golongan_darah].first++;
desa_data[kode_desa][golongan_darah].second += stoi(volume_darah);
}
}

for (int kode_desa = 1; kode_desa <= M; kode_desa++) {


cout << "Desa " << kode_desa << ":" << endl;
for (int gol = 0; gol < 4; gol++) {
string golongan_darah;
if (gol == 0) golongan_darah = "A";
else if (gol == 1) golongan_darah = "B";
else if (gol == 2) golongan_darah = "AB";
else golongan_darah = "O";

int jumlah_pendonor = 0;
int total_volume_darah = 0;

if (desa_data[kode_desa].find(golongan_darah) != desa_data[kode_desa].end()) {
jumlah_pendonor = desa_data[kode_desa][golongan_darah].first;
total_volume_darah = desa_data[kode_desa][golongan_darah].second;
}

cout << "Golongan " << golongan_darah << ": " << jumlah_pendonor << " pendonor, Total
Volume " << total_volume_darah << " ml; ";
}
cout << endl;
}

return 0;
}

Anda mungkin juga menyukai