CSP-J2025T2题解
2025-12-29 20:45:14
发布于:福建
2阅读
0回复
0点赞
题意:
考场共有 行 列座位,共有 共 名考生。考生按照成绩由高到低,以“蛇形”顺序分配座位。蛇形分配的规则是:先从第1列第1行向下到第 行,然后转向第2列第 行向上到第1行,再转向第3列第1行向下到第 行,以此类推。给定考场的行数 、列数 和所有考生的成绩 , ,…… , (其中a_{1}是小R的成绩),要求确定小R的座位所在的列数 和行数
解析:
根据其他同学的成绩,可以很轻松的求出小 78R 的排名(统计有多少人分数不小于他即可)。假设小 R 排名为 x,则他将位于第 列,第 , 当行数为奇数时,恰位于 行,否则将位于第 行。分类讨论得出答案。
答案
#include <bits/stdc++.h>
using namespace std;
long long n , m , x;
int main( ) {
cin >> n >> m >> x;
long long pos = 1; // 小 R 排名
for (int i = 2 ; i <= n * m ; i++) {// 计算小 R 排名
long long y;
scanf("%lld", &y);
if (y > x)
pos++;
}
long long l = (pos - 1) / n + 1; // 求列号
long long h = (pos - 1) % n + 1; // 求行号
if (l % 2 == 0) {
h = n - h + 1;
}
cout << l << " " << h;
return 0;
}
这里空空如也


有帮助,赞一个