#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 (*name[3])() = { 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 (0 <= cmdID && cmdID < 3) {
name[cmdID]();
}
// If valid, call the function from the array: dispatchTable[cmdID]();
// Else, print "Invalid Command"
else std::cout << "Invalid Command\n";
}
return 0;
}