PAT A1028
来源:互联网 发布:windows如何快捷锁屏 编辑:程序博客网 时间:2024/04/30 00:29
1028. List Sorting (25)
Excel can sort records according to any column. Now you are supposed to imitate this function.
Input
Each input file contains one test case. For each case, the first line contains two integers N (<=100000) 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
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 13 1000007 James 85000010 Amy 90000001 Zoe 60
Sample Output 1000001 Zoe 60000007 James 85000010 Amy 90
Sample Input 24 2000007 James 85000010 Amy 90000001 Zoe 60000002 James 98
Sample Output 2000010 Amy 90000002 James 98000007 James 85000001 Zoe 60
Sample Input 34 3000007 James 85000010 Amy 90000001 Zoe 60000002 James 90
Sample Output 3000001 Zoe 60000007 James 85000002 James 90000010 Amy 90
#include <cstring>#include <cstdio>#include <algorithm>using namespace std;struct Student { int id; char name[10]; int score;}stu[100005];bool cmp1(struct Student a, struct Student b) { return a.id < b.id;}bool cmp2(struct Student a, struct Student b) { int k = strcmp(a.name, b.name); if(k != 0) return k < 0; else return a.id < b.id;}bool cmp3(struct Student a, struct Student b) { if(a.score != b.score) return a.score < b.score; else return a.id < b.id;}int main(){ int N, C; scanf("%d %d", &N, &C); for(int i = 0; i < N; i++){ scanf("%d %s %d", &stu[i].id, stu[i].name, &stu[i].score); } if(C == 1) sort(stu, stu + N, cmp1); else if(C == 2) sort(stu, stu + N, cmp2); else sort(stu, stu + N, cmp3); for(int i = 0; i < N; i++){ printf("%06d %s %d\n", stu[i].id, stu[i].name, stu[i].score); } return 0;}
- PAT A1028
- PAT-A1028
- PAT A1028 List Sorting
- PAT a1028题解
- PAT A1028. List Sorting (25)
- PAT A1028 list sorting (25)
- PAT-A1028. List Sorting (25)(排序.)
- A1028. List Sorting (25)
- A1028. 选择计算
- 清澄A1028. 选择计算
- 刷清橙OJ--A1028.选择计算
- pat
- 【PAT】
- PAT
- PAT
- PAT
- PAT
- PAT
- JSTL : javaserverpages standard tag library JSP标准标签库
- POJ 1759 Garland 已翻译
- 合并k个增序链表
- Jmeter+jenkins的配置
- 如何做Linux内核的开发
- PAT A1028
- 视觉基础:关于机器视觉、机器学习及人工智能领域
- Unity3D——百度地图SDK接入(经验)
- ubuntu
- poj_1026 Cipher(置换群)
- PAT A1029
- Unity3D导入NuGet的Newtonsoft.Json并进行相关操作
- Java入门到精通——调错篇之Spring2.5利用aspect实现AOP时报错: error at ::0 can't find referenced pointcut XXX
- hduoj 1083 二分图的匹配,匈牙利算法