def _extract_single_status()

in src/open_r1/utils/competitive_programming/ioi_scoring.py [0:0]


def _extract_single_status(score: float, feedback: str) -> str:
    """
    Determines the status code based on the score and feedback message.

    Args:
        score: The numeric score (0.0 to 1.0)
        feedback: The feedback message from the execution

    Returns:
        str: Status code ('CE', 'MLE', 'TLE', 'WA', 'RE', 'AC', or 'PA')
    """
    if score == 0.0:
        if "Compilation error" in feedback:
            return "CE"
        elif "Memory limit exceeded" in feedback:
            return "MLE"
        elif "Time limit exceeded" in feedback:
            return "TLE"
        elif "Output isn't correct" in feedback:
            return "WA"
        else:
            return "RE"
    elif score == 1.0:
        return "AC"
    else:
        return "PA"