All submissions

State Machine with Enums

#include <iostream>
#include <string>
using namespace std;

enum class State { Idle, Busy, Error };

const char* toString(State s) {
   switch (s) {
       case State::Idle: return "Idle";
       case State::Busy: return "Busy";
       case State::Error: return "Error";
   }
   return "";
}

int main() {
   int n;
   cin >> n;
   State state = State::Idle;
   for (int i = 0; i < n; i++) {
       string cmd;
       cin >> cmd;
       
       // your code here: implement transition logic to update state
       if (cmd == "start") state = State::Busy;
       if (cmd == "done") state = State::Idle;
       if (cmd == "fail") state = State::Error;
       
   }
   cout << toString(state);
   return 0;
}
Loading...

Input

3 start done start

Expected Output

Busy