问题描述
  安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序。身份证号码为18位的数字组成,出生日期为第7到第14位
输入格式
  第一行一个整数n,表示有n个身份证号码
  余下的n行,每行一个身份证号码。
输出格式
  按出生日期从大到小排序后的身份证号,每行一条
样例输入
5
466272307503271156
215856472207097978
234804580401078365
404475727700034980
710351408803093165
样例输出
404475727700034980
234804580401078365
215856472207097978
710351408803093165
466272307503271156
数据规模和约定
  n<=100000

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int n;
struct Node
{string s;int a=0, b=0, c=0;void fun(){for (int i = 0; i<6; i++)a = a * 10 + s[i] - '0';for (int i = 6; i<14; i++)b = b * 10 + s[i] - '0';for (int i = 14; i<18; i++)c = c * 10 + s[i] - '0';}
}node[100005];bool cmp(Node a, Node b)
{if (a.b != b.b)return a.b>b.b;if (a.a != b.a)return a.a>b.a;if (a.c != b.c)return a.c>b.c;
}int main()
{cin >> n;for (int i = 0; i<n; i++){cin >> node[i].s; node[i].fun();}sort(node, node + n, cmp);for (int i = 0; i<n; i++)cout << node[i].s << endl;system("pause");return 0;
}

算法提高 身份证排序相关推荐

  1. Java实现 蓝桥杯VIP 算法提高 身份证排序

    算法提高 身份证排序 时间限制:1.0s 内存限制:256.0MB 问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身 ...

  2. 蓝桥杯ADV-172 算法提高 身份证排序

    问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生日期为第7到第14位 输入格式 第一 ...

  3. java 蓝桥杯算法提高 身份证号码升级(题解)

    试题 算法提高 身份证号码升级 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为 ...

  4. java 蓝桥杯算法提高 成绩排序2

    试题 算法提高 成绩排序2 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给出n个学生的成绩,将这些学生按成绩排序,排序规则:总分高的在前:总分相同,数学成绩高的在前:总分与数学相 ...

  5. Java实现蓝桥杯 算法提高 身份证号码升级

    算法提高 身份证号码升级 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位 ...

  6. 算法提高 身份证号码升级

    问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...

  7. [Java] 蓝桥杯ADV-171 算法提高 身份证号码升级

    问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...

  8. 蓝桥杯 ADV-171 算法提高 身份证号码升级

    问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...

  9. 蓝桥杯 ADV-131算法提高 选择排序

    问题描述 排序,顾名思义,是将若干个元素按其大小关系排出一个顺序.形式化描述如下:有n个元素a[1],a[2],-,a[n],从小到大排序就是将它们排成一个新顺序a[i[1]]<a[i[2]]& ...

最新文章

  1. PyTorch 多机多卡训练:DDP 实战与技巧
  2. C++实现简易通讯录
  3. 留存方法论:如何培养用户使用习惯?
  4. 《TCP/IP详解卷1:协议》第3章 IP:网际协议(2)-读书笔记
  5. Content-Disposition 响应头,设置文件在浏览器打开还是下载
  6. leetcode-445. 两数相加 II
  7. onhashchange
  8. MyBatis笔记——配置文件完成增删改查
  9. siamfc代码解读_分析SiamFC
  10. php进行url转码,对url中的参数进行转码
  11. 三年程序员成功转型项目经理
  12. word怎么删除参考文献的横线_2016版Word 中参考文献上面的横线是怎么去掉的啊,求助求助?...
  13. PostgreSQL数据库学习手册之大对象
  14. 【暑期每日一题】洛谷 P1192 台阶问题
  15. <塞梅普雷斯 如是说> 第二部 0.序
  16. js 切比雪夫多项式实现
  17. PDF文件字体嵌入问题
  18. 数据泵 TTS(传输表空间技术)
  19. 全志T3开发板(4核ARM Cortex-A7)测评合集——从开发板到PLC
  20. 理工英语单词汇总与复习

热门文章

  1. 统计模型参数量与FLOPs
  2. QString与std::string的相互转换
  3. python中list与array互相转换
  4. JobScheduler的使用
  5. 五、唱歌不如跳舞(下)
  6. PMP-【第7章 项目成本管理】-2021-2-12(161页-179页)
  7. flutter 调用原生安卓插件_Flutter 如何调用Android和iOS原生代码-阿里云开发者社区...
  8. php sqlite3菜鸟,SQLite Update 语句
  9. 删除单链上数据域值最小的节点_深入浅出数据结构
  10. linux命令行之find详解