#include <iostream>
// Global command functions
void cmdReset() { std::cout << "System Reset" << std::endl; }
void cmdStart() { std::cout << "System Start" << std::endl; }
void cmdStop() { std::cout << "System Stop" << std::endl; }
int main() {
// TODO: Define an array of function pointers named 'dispatchTable'
// It should hold 3 pointers to functions returning void with no args.
// Initialize it with {cmdReset, cmdStart, cmdStop}.
// Syntax hint: void (*name[])() = { ... };
void (*dispatchTable[])() = {cmdReset, cmdStart, cmdStop};
int N;
if (!(std::cin >> N)) return 0;
for (int i = 0; i < N; ++i) {
int cmdID;
std::cin >> cmdID;
// TODO: Check bounds (0 <= cmdID < 3)
// If valid, call the function from the array: dispatchTable[cmdID]();
if(cmdID >= 0 && cmdID < 3) {
dispatchTable[cmdID]();
}
// Else, print "Invalid Command"
else {
std::cout << "Invalid Command" << std::endl;
}
}
return 0;
}