#include <bits/stdc++.h>
using namespace std;
 
class Account {
protected:
    string accountholder;
    int accountnumber;
    double balance;
public:
    Account() {} 
    Account(string holder, int number, double bal) {
        accountholder = holder;
        accountnumber = number;
        balance = bal;
    }
    void deposit(double am) {
        if (am > 0) {
            balance += am;
            cout << "Deposit: " << am << ". New balance: " << balance << endl;
        } else {
            cout << "Invalid deposit amount.\n";
        }
    }
    void withdraw(double a) {
        if (a <= balance) {
            balance -= a;
            cout << "Withdraw: " << a << ". New balance: " << balance << endl;
        } else {
            cout << "Insufficient balance.\n";
        }
    }
    void display() {
        cout << "Account Holder: " << accountholder
             << "\nAccount number: " << accountnumber
             << "\nAccount balance: " << balance << endl;
    }
    Account operator+(Account obj) {
        Account t("NO name", 0, balance + obj.balance);
        return t;
    }
    bool operator>(Account obj) {
        return balance > obj.balance;
    }
    double getbalance() {
        return balance;
    }
    string getname() {
        return accountholder;
    }
};
 
class Savingaccount : public Account {
private:
    double irate;
public:
    Savingaccount(string name, int nm, double b, double rate)
        : Account(name, nm, b) {
        irate = rate;
    }
    void addinterest() {
        double interest = (balance * irate) / 100;
        balance += interest;
        cout << "Interest: " << irate << "% added. New balance: " << balance << endl;
    }
    void display() {
        cout << "\nSaving Account:"
             << "\nAccount Holder: " << accountholder
             << "\nAccount number: " << accountnumber
             << "\nAccount balance: " << balance << endl;
    }
};
 
int main() {
    Account a1("Sammo", 10000, 4500.56);
    Account a2("Tithi", 4563, 23400.54);
 
    cout << "Basic Accounts:\n";
    a1.display();
    a2.display();
 
	a1.deposit(3000);
	a2.withdraw(3490);
	if(a1 > a2) cout << "a1" << endl;
	else cout << "a2" << endl;
	Account add;
	add = a1+a1;
	add.display();
    Savingaccount s1("Sajib", 12345, 5000, 5);
    s1.addinterest();
    s1.display();
}
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBBY2NvdW50IHsKcHJvdGVjdGVkOgogICAgc3RyaW5nIGFjY291bnRob2xkZXI7CiAgICBpbnQgYWNjb3VudG51bWJlcjsKICAgIGRvdWJsZSBiYWxhbmNlOwpwdWJsaWM6CiAgICBBY2NvdW50KCkge30gCiAgICBBY2NvdW50KHN0cmluZyBob2xkZXIsIGludCBudW1iZXIsIGRvdWJsZSBiYWwpIHsKICAgICAgICBhY2NvdW50aG9sZGVyID0gaG9sZGVyOwogICAgICAgIGFjY291bnRudW1iZXIgPSBudW1iZXI7CiAgICAgICAgYmFsYW5jZSA9IGJhbDsKICAgIH0KICAgIHZvaWQgZGVwb3NpdChkb3VibGUgYW0pIHsKICAgICAgICBpZiAoYW0gPiAwKSB7CiAgICAgICAgICAgIGJhbGFuY2UgKz0gYW07CiAgICAgICAgICAgIGNvdXQgPDwgIkRlcG9zaXQ6ICIgPDwgYW0gPDwgIi4gTmV3IGJhbGFuY2U6ICIgPDwgYmFsYW5jZSA8PCBlbmRsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgIkludmFsaWQgZGVwb3NpdCBhbW91bnQuXG4iOwogICAgICAgIH0KICAgIH0KICAgIHZvaWQgd2l0aGRyYXcoZG91YmxlIGEpIHsKICAgICAgICBpZiAoYSA8PSBiYWxhbmNlKSB7CiAgICAgICAgICAgIGJhbGFuY2UgLT0gYTsKICAgICAgICAgICAgY291dCA8PCAiV2l0aGRyYXc6ICIgPDwgYSA8PCAiLiBOZXcgYmFsYW5jZTogIiA8PCBiYWxhbmNlIDw8IGVuZGw7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY291dCA8PCAiSW5zdWZmaWNpZW50IGJhbGFuY2UuXG4iOwogICAgICAgIH0KICAgIH0KICAgIHZvaWQgZGlzcGxheSgpIHsKICAgICAgICBjb3V0IDw8ICJBY2NvdW50IEhvbGRlcjogIiA8PCBhY2NvdW50aG9sZGVyCiAgICAgICAgICAgICA8PCAiXG5BY2NvdW50IG51bWJlcjogIiA8PCBhY2NvdW50bnVtYmVyCiAgICAgICAgICAgICA8PCAiXG5BY2NvdW50IGJhbGFuY2U6ICIgPDwgYmFsYW5jZSA8PCBlbmRsOwogICAgfQogICAgQWNjb3VudCBvcGVyYXRvcisoQWNjb3VudCBvYmopIHsKICAgICAgICBBY2NvdW50IHQoIk5PIG5hbWUiLCAwLCBiYWxhbmNlICsgb2JqLmJhbGFuY2UpOwogICAgICAgIHJldHVybiB0OwogICAgfQogICAgYm9vbCBvcGVyYXRvcj4oQWNjb3VudCBvYmopIHsKICAgICAgICByZXR1cm4gYmFsYW5jZSA+IG9iai5iYWxhbmNlOwogICAgfQogICAgZG91YmxlIGdldGJhbGFuY2UoKSB7CiAgICAgICAgcmV0dXJuIGJhbGFuY2U7CiAgICB9CiAgICBzdHJpbmcgZ2V0bmFtZSgpIHsKICAgICAgICByZXR1cm4gYWNjb3VudGhvbGRlcjsKICAgIH0KfTsKCmNsYXNzIFNhdmluZ2FjY291bnQgOiBwdWJsaWMgQWNjb3VudCB7CnByaXZhdGU6CiAgICBkb3VibGUgaXJhdGU7CnB1YmxpYzoKICAgIFNhdmluZ2FjY291bnQoc3RyaW5nIG5hbWUsIGludCBubSwgZG91YmxlIGIsIGRvdWJsZSByYXRlKQogICAgICAgIDogQWNjb3VudChuYW1lLCBubSwgYikgewogICAgICAgIGlyYXRlID0gcmF0ZTsKICAgIH0KICAgIHZvaWQgYWRkaW50ZXJlc3QoKSB7CiAgICAgICAgZG91YmxlIGludGVyZXN0ID0gKGJhbGFuY2UgKiBpcmF0ZSkgLyAxMDA7CiAgICAgICAgYmFsYW5jZSArPSBpbnRlcmVzdDsKICAgICAgICBjb3V0IDw8ICJJbnRlcmVzdDogIiA8PCBpcmF0ZSA8PCAiJSBhZGRlZC4gTmV3IGJhbGFuY2U6ICIgPDwgYmFsYW5jZSA8PCBlbmRsOwogICAgfQogICAgdm9pZCBkaXNwbGF5KCkgewogICAgICAgIGNvdXQgPDwgIlxuU2F2aW5nIEFjY291bnQ6IgogICAgICAgICAgICAgPDwgIlxuQWNjb3VudCBIb2xkZXI6ICIgPDwgYWNjb3VudGhvbGRlcgogICAgICAgICAgICAgPDwgIlxuQWNjb3VudCBudW1iZXI6ICIgPDwgYWNjb3VudG51bWJlcgogICAgICAgICAgICAgPDwgIlxuQWNjb3VudCBiYWxhbmNlOiAiIDw8IGJhbGFuY2UgPDwgZW5kbDsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgQWNjb3VudCBhMSgiU2FtbW8iLCAxMDAwMCwgNDUwMC41Nik7CiAgICBBY2NvdW50IGEyKCJUaXRoaSIsIDQ1NjMsIDIzNDAwLjU0KTsKCiAgICBjb3V0IDw8ICJCYXNpYyBBY2NvdW50czpcbiI7CiAgICBhMS5kaXNwbGF5KCk7CiAgICBhMi5kaXNwbGF5KCk7CgkKCWExLmRlcG9zaXQoMzAwMCk7CglhMi53aXRoZHJhdygzNDkwKTsKCWlmKGExID4gYTIpIGNvdXQgPDwgImExIiA8PCBlbmRsOwoJZWxzZSBjb3V0IDw8ICJhMiIgPDwgZW5kbDsKCUFjY291bnQgYWRkOwoJYWRkID0gYTErYTE7CglhZGQuZGlzcGxheSgpOwogICAgU2F2aW5nYWNjb3VudCBzMSgiU2FqaWIiLCAxMjM0NSwgNTAwMCwgNSk7CiAgICBzMS5hZGRpbnRlcmVzdCgpOwogICAgczEuZGlzcGxheSgpOwp9Cg==