/**
 * This function checks whether an architect should take on a new project based on the evaluations
 * and the availability of the architect's clients.
 *
 * @param evaluations A dictionary containing the evaluations of the architect's clients.
 *                    The keys are the names of the clients and the values are boolean values,
 *                    where True means the client is satisfied and False means the client is not satisfied.
 * @param clients A list of strings representing the names of the architect's clients.
 * @return True if the architect should take on a new project, False otherwise.
 */
fun checkArchitect(evaluations: Map<String, Boolean>, clients: List<String>): Boolean {

    var unsatisfiedClients = 0

    for (client in clients) {
        if (!evaluations[client]!!) {
            unsatisfiedClients++
        }
    }

    return unsatisfiedClients < clients.size && unsatisfiedClients <= clients.size / 2
}

// Example
/**
 * This function checks whether an architect should take on a new project based on the evaluations
 * and the availability of the architect's clients.
 *
 * @param evaluations A dictionary containing the evaluations of the architect's clients.
 *                    The keys are the names of the clients and the values are boolean values,
 *                    where True means the client is satisfied and False means the client is not satisfied.
 * @param clients A list of strings representing the names of the architect's clients.
 * @return True if the architect should take on a new project, False otherwise.
 */
fun checkArchitect(evaluations: Map<String, Boolean>, clients: List<String>): Boolean {
/**
 * This function checks whether an architect should take on a new project based on the evaluations
 * and the availability of the architect's clients.
 *
 * @param evaluations A dictionary containing the evaluations of the architect's clients.
 *                    The keys are the names of the clients and the values are boolean values,
 *                    where True means the client is satisfied and False means the client is not satisfied.
 * @param clients A list of strings representing the names of the architect's clients.
 * @return True if the architect should take on a new project, False otherwise.
 */
fun checkArchitect(evaluations: Map<String, Boolean>, clients: List<String>): Boolean {

    var unsatisfiedClients = 0

    for (client in clients) {
        if (!evaluations[client]!!) {
            unsatisfiedClients++
        }
    }

    return unsatisfiedClients < clients.size && unsatisfiedClients <= clients.size / 2
}

// Example