Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- class Makanan {
- protected:
- string nama;
- int A, B;
- int gula, karbo;
- public:
- void set(string nam, int gul, int kar) { nama=nam; gula=gul; karbo=kar; }
- string getNama() { return nama; }
- virtual int getKalori() = 0;
- };
- class KayaKalori : public Makanan {
- private:
- int A = 50;
- int B = 20;
- public:
- int getKalori() { return (A * gula + B * karbo); }
- };
- class KayaNutrisi : public Makanan {
- private:
- int A = 20;
- int B = 10;
- public:
- int getKalori() { return (A * gula + B * karbo); }
- };
- class DaftarMakanan {
- private:
- vector<KayaKalori> list_kalori;
- vector<KayaNutrisi> list_nutrisi;
- public:
- void addKalori(KayaKalori mak) {
- list_kalori.push_back(mak);
- }
- void addNutrisi(KayaNutrisi mak) {
- list_nutrisi.push_back(mak);
- }
- int getTotalKalori() {
- int sum = 0;
- for(int i=0; i<list_kalori.size(); i++) {
- sum += list_kalori[i].getKalori();
- }
- for(int i=0; i<list_nutrisi.size(); i++) {
- sum += list_nutrisi[i].getKalori();
- }
- return sum;
- }
- void printKalori1000() {
- for(int i=0; i<list_kalori.size(); i++) {
- if (list_kalori[i].getKalori() > 1000) {
- cout << list_kalori[i].getNama() << endl;
- }
- }
- for(int i=0; i<list_nutrisi.size(); i++) {
- if (list_nutrisi[i].getKalori() > 1000) {
- cout << list_nutrisi[i].getNama() << endl;
- }
- }
- }
- };
- int main(void) {
- int n; DaftarMakanan daftar;
- string nama, jenis; int gula, karbo;
- cin >> n;
- for(int i=0; i<n; i++) {
- cin >> nama >> jenis >> gula >> karbo;
- if (jenis == "Kalori") {
- KayaKalori temp; temp.set(nama, gula, karbo);
- daftar.addKalori(temp);
- }
- else if (jenis == "Nutrisi") {
- KayaNutrisi temp; temp.set(nama, gula, karbo);
- daftar.addNutrisi(temp);
- }
- }
- cout << daftar.getTotalKalori() << endl;
- daftar.printKalori1000();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement