#include <iostream>

class Score {
    int value_;

public:
    explicit Score(int initial) : value_{initial} {
    }

    int value() const {
        return value_;
    }

    bool try_add(int amount) {
        if (amount < 0) {
            return false;
        }
        if (amount > 10 - value_) {
            return false;
        }
        value_ = value_ + amount;
        return true;
    }
};

int main() {
    Score score{0};
    bool first{score.try_add(3)};
    std::cout << score.value() << '\n';
    bool second{score.try_add(0)};
    std::cout << score.value() << '\n';
    bool third{score.try_add(8)};
    std::cout << score.value() << '\n';
    if (first != true || second != true || third != false || score.value() != 3) {
        std::cout << "wrong result" << '\n';
        return 1;
    }
    return 0;
}
