2023黄冈师范学院第三届『小白杯』ACM程序设计新生赛-热身赛

已结束 ACM/ICPC 开始于: 2023-11-26 9:30 1.5 小时 主持人: 76

比赛邀请码:2023ACM301A

注:新生赛正赛也需要填写邀请码,热身赛设置邀请码是为了让大家熟悉一下,正赛邀请码与热身赛邀请码并不会相同;同时,热身赛成绩与正赛成绩无关。

ACM/ICPC规则

  1. 排名时只按通过题目数量进行排名,若数量相同,则按总用时排名。
  2. 题目只有通过不通过两种状态,题目若只有部分数据通过,则这道题仍是不通过
  3. 每提交一次错误代码,总用时都会加上20分钟罚时,请想清楚代码是否有问题再提交!
  4. 提交后系统立即评测,并返回以下状态:
    • Accepted 通过:程序输出完全正确
    • Wrong Answer 不通过:程序输出与标准答案不一致(不包括行末空格以及文件末空行)
    • Time Limit Exceeded 不通过:程序运行时间超过了题目限制
    • Runtime Error 不通过:程序运行时错误(如数组越界、被零除、运算溢出、栈溢出、无效指针等)
    • Compile Error 不通过:编译失败,代码有致命问题。
  5. 其他错误对应的意思请参考HGNUOJ帮助页面

对于第一题:输出“31”即可。

对于第二题:注意复制样例的即可。

对于第三题,题解代码如下:

#include <stdio.h>
#include <stdbool.h>

// 检查某个玩家是否获胜
bool checkWin(char board[3][3], char player) {
    // 检查行
    for (int i = 0; i < 3; i++) {
        if (board[i][0] == player && board[i][1] == player && board[i][2] == player)
            return true;
    }

    // 检查列
    for (int j = 0; j < 3; j++) {
        if (board[0][j] == player && board[1][j] == player && board[2][j] == player)
            return true;
    }

    // 检查对角线
    if (board[0][0] == player && board[1][1] == player && board[2][2] == player)
        return true;

    if (board[0][2] == player && board[1][1] == player && board[2][0] == player)
        return true;

    return false;
}

int main() {
    char board[3][3];

    // 读取棋盘
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            scanf(" %c", &board[i][j]);
        }
    }

    // 检查玩家A是否获胜
    if (checkWin(board, 'X')) {
        printf("Flysky\n");
    }
    // 检查玩家B是否获胜
    else if (checkWin(board, 'O')) {
        printf("Rikka\n");
    }
    // 平局
    else {
        printf("NEXT\n");
    }

    return 0;
}
状态
已结束
规则
ACM/ICPC
题目
3
开始于
2023-11-26 9:30
结束于
2023-11-26 11:00
持续时间
1.5 小时
主持人
参赛人数
76