#include <cstdint> #include <cstdio> // Register abstraction (USER MUST MODIFY THIS CLASS ONLY) class Register32 { private: std::uint32_t value; public: Register32(std::uint32_t val):value(val){} void operator|=(std::uint32_t val){ value |= val; } void operator&=(std::uint32_t val){ value &= val; } std::uint32_t get(){ 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