#include <cstdint> #include <cstdio> // Register abstraction (USER MUST MODIFY THIS CLASS ONLY) class Register32 { private: std::uint32_t value; public: explicit Register32(std::uint32_t v = 0) : value(v) {} Register32& operator |= (std::uint32_t mask) { value |= mask; return *this; } Register32& operator &= (std::uint32_t mask) { value &= mask; return *this; } std::uint32_t get() const { return value; } }; int main() { Register32 reg{0}; int n; std::scanf("%d", &n); for (int i = 0; i < n; ++i) { char op[6]; int bit; std::scanf("%s %d", op, &bit); // MUST REMAIN UNCHANGED if (op[0] == 'S') { reg |= (1u << bit); } else { reg &= ~(1u << bit); } } std::printf("reg=%u\n", reg.get()); return 0; }
Test Cases
Test Results
Input
3 SET 0 SET 3 CLEAR 0
Expected Output
reg=8