struct Problem;
struct Solution;
class Skill {
public:
Skill() = default;
Solution Solve(Problem problem);
}
// Implement class to represent an engineer. Each engineer could have multiple skills.
// Implement class to represent a team. Each team could have multiple engineers.
// A team class needs to provide a Solve function: given a problem, whether it could be solved
// and what is the solution. A problem could be solved if there is an engineer in the team that
// could provide a solution to it.