TooY0ung的学院
想了半天硬是想不出来
描述
TooY0ung开了一个编程学院,面向全球不限年龄、不限物种进行招生。
也就是说,如果一只千年乌龟想来学习编程,TooY0ung也会让他入学。
已知每位学生的两个信息:所属城市、以及出生年份。
为了区别每位学生,TooY0ung需要给他们进行学号编码。
TooY0ung规定了一种12位的学号编码规则:
前6位用来记录城市编号,后6位用来表示年龄编号。
更具体地说,
1.如果城市的编号不足6位,则需要在前面补0,直至补齐6位。
2.年龄是根据同一个城市学生的年龄来进行编号1,2,3等,比如一个学员是某城市中,出生年份最早的(年龄最大的),
则他的后六位记录为1,与城市规则一致,如果不足6位则在前面用0补齐6位,那么这个学员的年龄编码就是000001。
同理,如果某学员是某城市中,出生年份第二早的,那么这个学员的年龄编码就是000002。
输入
输入包含多行,第一行输入两个数,n和m,n表示全球的城市数量,m表示学员人数。
接下来m行,每行输入两个数字,ci和yi,分别表示第i名学员的城市编号和出生年份。
数据保证所有学员的出生年份不一致。
输出
输出包含m行,每行一个12位数,表示该学员的学号。
输入样例 1
2 5
1 1995
2 1996
1 1993
1 1994
2 1992
输出样例 1
000001000003
000002000002
000001000001
000001000002
000002000001
提示
关于样例解释:
2个城市,5名学员。
城市1有三名学员:出生年份分别为1995、1993、1994。
城市2有两名学员:出生年份分别为1996、1992。
则第一名学员的年龄在城市1中排名第3,所以他的城市编号为1,年龄编号为3,分别补齐6位后,学号为:000001000003
第二名学员的年龄在城市2中排名第2,所以他的城市编号为2,年龄编号为2,分别补齐6位后,学号为:000002000002
第三名学员的年龄在城市1中排名第1,所以他的城市编号为1,年龄编号为1,分别补齐6位后,学号为:000001000001
第四名学员的年龄在城市1中排名第2,所以他的城市编号为1,年龄编号为2,分别补齐6位后,学号为:000001000002
第五名学员的年龄在城市2中排名第1,所以他的城市编号为2,年龄编号为1,分别补齐6位后,学号为:000002000001
来自TooY0ung温暖的提示:
输出保证6位,如果不足在前面补0有c语言快捷操作写法:
假设要输出的变量为int类型的a,则可以写 printf("%06d",a);
数据范围:
对于15%的数据,1<=n<=100,1<=m<=100,1<=ci<=n,1<=yi<=10^9。
对于100%的数据,1<=n<=10^5,1<=m<=10^5,1<=ci<=n,1<=yi<=10^9。
数据保证yi不重复。
有没有高人指点一下