P14358 [CSP-J 2025] 座位

P14358 CSP-J 2025 座位

来源:洛谷题库

思路

题目比较简单,数据量不大,要求求出出排序后的a1所在的列和行

  • 列:排序后的数组下标直接除n ,结果向上取整即可
  • 行:根据求出的列数分奇偶,用下标%行数n即可知道a1在这一列排第几,奇数从第一行开始,偶尔列从第n行开始排
  • 注意:特判一下下标%n==0的情况,奇数项是第n行,偶数项在第一行

代码

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int a[10001];
int main(){
	int n,m;
	int c,r;//分别是列 、行
	cin>>n>>m;
	for(int i=1;i<=n*m;i++){
		cin>>a[i];
	}
	int k=a[1],t=0; //t排序后所在位置 
	sort(a+1,a+n*m+1,greater<int>());//降序排列 
	for(int i=1;i<=n*m;i++){
		if(a[i]==k) t=i;
	}
	//计算列数
	if(t%n==0) c = t/n; //是行的整数倍 直接输出 
	else c = t/n+1; //座位在下一行 
	//计算行数 
	cout<<c<<" ";
	if(t%n==0){ //位置刚好在首尾的情况 
		if(c%2==1) cout<<n; //奇数列在最后一排 
		else cout<<1;
	}else{
		if(c%2==1) cout<<t%n;
		else cout<<n-t%n+1;
	}
		return 0;
}
相关推荐
旖旎夜光1 小时前
LeetCode 1576: 替换所有的问号(模拟) —— 题解
c++·学习·算法·leetcode·力控
朝朝辞暮i1 小时前
C++ 第 38 课:线程、SingleThreadedExecutor、MultiThreadedExecutor、Callback Group
开发语言·c++·算法·ros2
(Charon)1 小时前
【C++面试】互斥锁与读写锁:使用场景、实现原理与写饥饿问题
c++·算法
longlongzihan1 小时前
回溯法详解:LeetCode 46. 全排列
算法·leetcode·回溯
秋名RG1 小时前
时间复杂度、空间复杂度与算法稳定性详解
数据结构·算法·排序算法
白色的北极熊1 小时前
c语言 求余运算符
c语言·数据结构·算法
波尔德1 小时前
Origin 2024 绘制钟形正态分布曲线:填充颜色并导出透明 PNG
人工智能·算法
Omics Pro2 小时前
微软:多模态生物世界模型
数据库·人工智能·算法·microsoft·机器学习·自然语言处理
hai3152475432 小时前
语言学集合定律
人工智能·算法