PAT (Advanced Level) Practice 1028 List Sorting (25分)
1028 List Sorting (25分)
Excel can sort records according to any column. Now you are supposed to imitate this function.
Input Specification:
Each input file contains one test case. For each case, the first line contains two integers N (≤105) and C, where N is the number of records and C is the column that you are supposed to sort the records with. Then N lines follow, each contains a record of a student. A student's record consists of his or her distinct ID (a 6-digit number), name (a string with no more than 8 characters without space), and grade (an integer between 0 and 100, inclusive).
Output Specification:
For each test case, output the sorting result in N lines. That is, if C = 1 then the records must be sorted in increasing order according to ID's; if C = 2 then the records must be sorted in non-decreasing order according to names; and if C = 3 then the records must be sorted in non-decreasing order according to grades. If there are several students who have the same name or grade, they must be sorted according to their ID's in increasing order.
Sample Input 1:
3 1
000007 James 85
000010 Amy 90
000001 Zoe 60
Sample Output 1:
000001 Zoe 60
000007 James 85
000010 Amy 90
Sample Input 2:
4 2
000007 James 85
000010 Amy 90
000001 Zoe 60
000002 James 98
Sample Output 2:
000010 Amy 90
000002 James 98
000007 James 85
000001 Zoe 60
Sample Input 3:
4 3
000007 James 85
000010 Amy 90
000001 Zoe 60
000002 James 90
Sample Output 3:
000001 Zoe 60
000007 James 85
000002 James 90
000010 Amy 90
自从上周考了冬季的乙级之后就再也没刷题了,这几天觉得心里有愧过来补补之前没做完的题目~
题意很清楚:
给定需要排序的条目总数,每一条分为三项:ID(由六位数构成,保证唯一),Name(可能重名),Score(可能重分)
当名字或者分数一样的情况下,选择ID的非降序排列,其余情况下针对输入操作数的要求进行某一特定项的非降序排列,比如输入1,就输出ID的非降序排列,其他以此类推~
水的不行,个人觉得只有乙级第三题难度...
#include<bits/stdc++.h>
#define ll long long
#define rg register ll
#define maxn 100005
using namespace std;
struct node
{
ll val,score;
string name;
}p[maxn];
inline bool cmp1(const node&a,const node&b)
{
return a.val<b.val;
}
inline bool cmp2(const node&a,const node&b)
{
return a.name==b.name?a.val<b.val:a.name<b.name;
}
inline bool cmp3(const node&a,const node&b)
{
return a.score==b.score?a.val<b.val:a.score<b.score;
}
int main()
{
ios::sync_with_stdio(false);
ll n,opps;
cin>>n>>opps;
for(rg i=1;i<=n;i++)
{
cin>>p[i].val>>p[i].name>>p[i].score;
}
if(opps==1)sort(p+1,p+1+n,cmp1);
if(opps==2)sort(p+1,p+1+n,cmp2);
if(opps==3)sort(p+1,p+1+n,cmp3);
for(rg i=1;i<=n;i++)
{
cout<<setw(6)<<setfill('0')<<p[i].val<<" "<<p[i].name<<" "<<p[i].score<<endl;
}
while(1)getchar();
return 0;
}
- 比特币在2017全球新闻谷歌搜索中排名第二,韩国政府聚焦比特币市场诈骗和假冒交易所
- ExtJs学习笔记(13)_Card布局
- Html与CSS快速入门03-CSS基础应用
- Html与CSS快速入门02-HTML基础应用
- “人类什么德性,机器人就是什么德性”
- ExtJs学习笔记(12)_Anchor布局
- ExtJs学习笔记(10)_Window窗口的Border布局
- 数据结构快速学习--02字符串
- 极品2字母域名la.cn结拍价高达32.2万元
- ExtJs学习笔记(8)_TabPanel的用法
- 姚期智:量子计算机进入“最后一里路”
- 贴个Silverlight试试看
- WCF运行错误:“此集合已经包含方案 http 的地址”的解决办法
- MVC官方教程索引
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- happens-before Krains 2020-08-26
- ReentrantLock可重入锁 Krains 2020-08-27
- Java中的线程 Krains 2020-08-24
- CAS Krains 2020-08-25
- 96. 不同的二叉搜索树 II Krains 2020-09-03 树
- 410. 分割数组的最大值 Krains 2020-08-29 20:21:39 动态规划二分查找
- 字典树 Krains 2020-09-01
- redis学习(十)
- vue修改浏览器的标题title
- 天天基金网数据接口
- Centos7实现开机自启EasySwoole
- input内文字与光标的初始位置调整
- 小程序push、unshift、concat
- mac下导出chrome插件及安装
- Job 资源对象