#ifndef SATH #define SATH #include using namespace std; class sat { int n; public: sat& operator=(int i); sat(int new_n = 200) {*this = new_n;} //(*this).operator=(new_n); operator int() const {return n;} }; //Reference argument is read/write. return s.operator=(s.operator int() + i); inline sat& operator+=(sat& s, int i) {return s = s + i;} inline sat& operator-=(sat& s, int i) {return s = s - i;} //Prefix operators inline sat& operator++(sat& s) {return s += 10;} inline sat& operator--(sat& s) {return s -= 10;} //Postfix operators inline const sat operator++(sat& s, int) {const sat old = s; ++s; return old;} inline const sat operator--(sat& s, int) {const sat old = s; --s; return old;} inline const sat operator+(sat s, int i) {return s += i;} inline const sat operator+(int i, sat s) {return s += i;} inline const sat operator-(sat s, int i) {return s -= i;} istream& operator>>(istream& i, sat& s); #endif