SUBMISSION_STATUS_PENDING = "PENDING"
SUBMISSION_STATUS_WAITING = "WAITING"
SUBMISSION_STATUS_PREPARING = "PREPARING"
SUBMISSION_STATUS_COMPILING = "COMPILING"
SUBMISSION_STATUS_RUNNING = "RUNNING"
SUBMISSION_STATUS_JUDGING = "JUDGING"
SUBMISSION_STATUS_FROZEN = "FROZEN"

SUBMISSION_STATUS_ACCEPTED = "ACCEPTED"
SUBMISSION_STATUS_CORRECT = "CORRECT"
SUBMISSION_STATUS_PARTIALLY_CORRECT = "PARTIALLY_CORRECT"

SUBMISSION_STATUS_REJECTED = "REJECTED"
SUBMISSION_STATUS_WRONG_ANSWER = "WRONG_ANSWER"
SUBMISSION_STATUS_INCORRECT = "INCORRECT"

SUBMISSION_STATUS_NO_OUTPUT = "NO_OUTPUT"

SUBMISSION_STATUS_COMPILATION_ERROR = "COMPILATION_ERROR"
SUBMISSION_STATUS_PRESENTATION_ERROR = "PRESENTATION_ERROR"

SUBMISSION_STATUS_RUNTIME_ERROR = "RUNTIME_ERROR"
SUBMISSION_STATUS_TIME_LIMIT_EXCEEDED = "TIME_LIMIT_EXCEEDED"
SUBMISSION_STATUS_MEMORY_LIMIT_EXCEEDED = "MEMORY_LIMIT_EXCEEDED"
SUBMISSION_STATUS_OUTPUT_LIMIT_EXCEEDED = "OUTPUT_LIMIT_EXCEEDED"
SUBMISSION_STATUS_IDLENESS_LIMIT_EXCEEDED = "IDLENESS_LIMIT_EXCEEDED"

SUBMISSION_STATUS_HACKED = "HACKED"

SUBMISSION_STATUS_JUDGEMENT_FAILED = "JUDGEMENT_FAILED"
SUBMISSION_STATUS_CONFIGURATION_ERROR = "CONFIGURATION_ERROR"
SUBMISSION_STATUS_FILE_ERROR = "FILE_ERROR"
SUBMISSION_STATUS_SYSTEM_ERROR = "SYSTEM_ERROR"
SUBMISSION_STATUS_CANCELED = "CANCELED"
SUBMISSION_STATUS_SKIPPED = "SKIPPED"

SUBMISSION_STATUS_SECURITY_VIOLATED = "SECURITY_VIOLATED"
SUBMISSION_STATUS_DENIAL_OF_JUDGEMENT = "DENIAL_OF_JUDGEMENT"

SUBMISSION_STATUS_UNKNOWN = "UNKNOWN"
SUBMISSION_STATUS_UNDEFINED = "UNDEFINED"

CALCULATION_OF_PENALTY_IN_MINUTES = "in_minutes"
CALCULATION_OF_PENALTY_IN_SECONDS = "in_seconds"
CALCULATION_OF_PENALTY_ACCUMULATE_IN_SECONDS_AND_FINALLY_TO_THE_MINUTE = (
    "accumulate_in_seconds_and_finally_to_the_minute"
)

TIME_UNIT_SECOND = "second"
TIME_UNIT_MILLISECOND = "millisecond"
TIME_UNIT_MICROSECOND = "microsecond"
TIME_UNIT_NANOSECOND = "nanosecond"

FULL_STATUS_TIME_DISPLAY = {
    SUBMISSION_STATUS_CORRECT.lower(): True,
    SUBMISSION_STATUS_INCORRECT.lower(): True,
    SUBMISSION_STATUS_PENDING.lower(): True,
}

TEAM_TYPE_OFFICIAL = "official"
TEAM_TYPE_UNOFFICIAL = "unofficial"
TEAM_TYPE_GIRL = "girl"

TEAM_TYPE_ZH_CN_OFFICIAL = "正式队伍"
TEAM_TYPE_ZH_CN_UNOFFICIAL = "打星队伍"
TEAM_TYPE_ZH_CN_GIRL = "女队"
