题目链接

身份证号是我国公民的唯一识别码,它由 18 位数字或者字母组成(只可能最后一位是字母)。18 位身份证号码的含义如下:第 1~2 为省、自治区、直辖市代码:第 3~4 位为地级市、盟、自治州代码;第 5~6 位为县、县级市、区代码。第 7~14 位位出生年月日,比如 19970401 代表 1997 年 4 月 1 日;第 15~16 位为顺序号,第 17 位代表性别,男为单数,女为双数,第 18 位为校验码,0~9 和 X。作为尾号的校验码,是把前十七位数字代入统一的公式计算出来的。解答本题你不用关心是如何计算出来的。现在给你 n 个身份证号码,请你按照出生年月日的字典序(年龄从大到小)输出第 m 个人的身份证号。

一些解释:虽然造数据的人非常辛苦的制造各种各样的身份证号(并且让他们生日互不相同),但是你并不需要验证关于身份证号的任何合法性,包括省市区是否合法,出生年月日是否合法,校验值是否合法,你需要做的仅仅是输出年龄从大到小第m个人的身份证号。

Input
输入第一行包含两个正整数 n 和 m,两数之间用一个空格分隔,接下来的 n 行每行为一个形如上述格式的身份证号码(不需要关心校验码的正确性,不影响本题解答)。(1≤n≤100,1≤m≤n)
Output
输出仅包含一行,为题目要求的一个身份证号码。
Sample Input
4 2
110108196004063022
13021119640203652X
420333197902112718
210222200012036512
Sample Output
13021119640203652X

分析
字符串排序,可以用STL sort来做。排序规则是从小到大,字典序。这里只要求处理年龄,在身份证号的第7-14位(从0开始则是 6-13)

AC代码

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;const int maxn = 110;
string s[maxn];bool cmp(string a, string b){for(int i=6;i<=13;i++)if(a[i]!=b[i])return a[i]<b[i];
}
int main()
{int n,m;cin>>n>>m;for (int i=0;i<n;i++) cin>>s[i];//从0开始sort(s,s+n,cmp);cout<<s[m-1];//这里用m-1
}

51Nod - 2142身份证号排序相关推荐

  1. 按出生年月日对身份证号进行排序

    //按出生日期将身份证号进行排序 #include"stdio.h" #include"string.h" struct student {int no;cha ...

  2. 数据库身份证号用什么类型_【文末送书】MySQL数据库?看这一篇干货文章就够了!...

    前言 为啥学习MySQL呢?因为MySQL是最流行的关系型数据库管理系统之一,在web应用方面,MySQL是最好的软件.MySQL所使用的sql语言是用于访问数据库的最常用标准化语言. 放心,读这期内 ...

  3. 通过身份证号提取性别_身份证号提取生日、年龄、性别、籍贯,最简单的方法!...

    上一期,Amy跟大家分享了如何从身份证号中提取出生日期.今天我们继续来讲如何提取年龄.性别.籍贯. 身份证号提取年龄 ✦思路:在E2单元格输入公式"=DATEDIF(D2,TODAY(),& ...

  4. js正则验证身份证号是否正确

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 封装js公共方法 //验证身份证格式 const IdentityCodeValid = sId => ...

  5. java 手机号脱敏,身份证号脱敏 工具类

    java 手机号脱敏,身份证号脱敏 工具类 import org.apache.commons.lang3.StringUtils;/*** * @title: 脱敏工具类* @author: wll ...

  6. 身份证号信息后台匹配

    今天看到一篇好文章,关于通过身份号计算出正确性,属相,星座,果断引过来了. 身份证号码的结构: 要进行身份证号码的验证,首先要了解身份证号码的编码规则.我国身份证号码多由若干位数字或者数字与字母混合组 ...

  7. js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)...

    js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ...

  8. sql server 根据身份证号计算出生日期和年龄的存储过程

    我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /******************************************** ...

  9. 判断身份证号是否合法

    -- ============================================= -- Description: <判断身份证号是否合法,返回结果对应如下:> -- -2: ...

最新文章

  1. 批量删除Marketing Cloud里的contact
  2. SAP GraphQL on Kyma
  3. django 1.8 官方文档翻译: 4-2-4 人性化
  4. 静态注册fragment_Fragment的静态和动态添加方式以及Fragment和Activity之间的通信方式...
  5. [LintCode] Coins in a Line I Coins in a Line II
  6. PHP留言并展示_留言页面展示功能
  7. c语言选题分析,c语言方面毕业设计选题.doc
  8. 新闻管理系统——系统管理员模块(一)
  9. 打开网址自动跳转 php,HTML网页自动跳转的5种方法
  10. 【锐捷交换】交换机MSTP+VRRP配置
  11. D. Count GCD
  12. 机器学习性能改善备忘单:32个帮你做出更好预测模型的技巧和窍门
  13. springboot通过date_histogram 按时间统计数据
  14. 微信小程序安全区域适配问题
  15. Ethercat 从站开发总结一:协议总结
  16. Python报错UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 1919: illegal mult
  17. C51 - DS18B20
  18. CADD课程学习(13)-- 研究蛋白小分子动态相互作用-I(GROMACS)
  19. 子元素scroll父元素容器不跟随滚动JS实现
  20. Web APIs:PC 端网页特效--常见网页特效案例--轮播图及节流阀思想

热门文章

  1. Java除法结果带小数、进一法的实现 Java问题通用解决代码
  2. 在word中的公式以代码形式体现在web上的方法
  3. java.函数参数太多,Java方法参数太多怎么办—Part 2—引入参数对象,javapart
  4. Java指派问题_指派问题的匈牙利算法
  5. 第10章* 网络 幂律分布
  6. java如何定义一个字符栈_Java性能优化之字符串优化处理
  7. 《深度学习的数学》二刷总结
  8. u-boot分析之内核启动(五)
  9. 在Windows环境下编译cocos2d-x-3.0
  10. 标记化结构初始化语法(C语言)