#lg11387. [COCI 2024/2025 #1] 身份证 / Osobna

[COCI 2024/2025 #1] 身份证 / Osobna

P11387 [COCI 2024/2025 #1] 身份证 / Osobna

题目背景

译自 COCI 2024/2025 #1 T1。1s,0.5G\texttt{1s,0.5G}。满分为 5050

题目描述

一张身份证上信息的格式如图所示。

第一行由 55 个字母,2121 个数字和 44<\texttt{<} 组成。最后 1111 位数字为校验码

第二行的前两位数字为出生年,特别地,若出生年 24\le 24,则表示是在 2121 世纪出生的;否则表示在 2020 世纪出生的。

第二行的出生年后两位数字表示出生月,出生月后两位数字表示出生日

第三行,先是持有人的,接着是两个 <\texttt{<},再是持有者的,都是大写字母。如果不满 3030 个字符,则用 <\texttt{<} 填充。

你需要按照规定的格式输出这些信息。

输入格式

见【题目描述】。

输出格式

第一行,输出 Ime:\texttt{Ime:},后加一个空格,然后输出持有者的,首字母大写,其余字母小写。

第二行,输出 Prezime:\texttt{Prezime:},后加一个空格,然后输出持有者的,首字母大写,其余字母小写。

第三行,输出 Datum rodjenja:\texttt{Datum rodjenja:},后加一个空格,然后按照 DD-MM-YYYY\texttt{DD-MM-YYYY} 的格式输出出生日期,其中 DD\texttt{DD} 表示出生日,MM\texttt{MM} 表示出生月,YYYY\texttt{YYYY} 表示出生年(四位数)。

第四行,输出 OIB:\texttt{OIB:},后加一个空格,然后输出校验码。

输入输出样例 #1

输入 #1

IOHRV111111111233333333333<<<<
0102032M2202022HRV<<<<<<<<<<<5
TONI<<HONI<<<<<<<<<<<<<<<<<<<<

输出 #1

Ime: Toni
Prezime: Honi
Datum rodjenja: 03-02-2001
OIB: 33333333333

输入输出样例 #2

输入 #2

IOHRV123456789012345678901<<<<
9803049F2401059HRV<<<<<<<<<<<2
PAJO<<PATAK<<<<<<<<<<<<<<<<<<<

输出 #2

Ime: Pajo
Prezime: Patak
Datum rodjenja: 04-03-1998
OIB: 12345678901

说明/提示

子任务编号 特殊性质 得分
1 1 A 25 25
2 2 B 15 15
3 3 10 10
  • 特殊性质 A:名和姓都只由一个字母组成。
  • 特殊性质 B:出生年份在 [2000,2024][2000,2024] 间。

#5693. 「COCI 2024/2025 #1」Osobna

标签: 传统 | 时间限制: 1000 ms | 内存限制: 512 MiB |

题目描述

译自 COCI 2024/2025 Contest #1 T1「Osobna

Toni 作为 COCI(克罗地亚语为 HONI)的新任主席,非常热爱这项竞赛,以至于他决定将自己的姓氏改为与竞赛名称一致。从现在起,他的名字叫作 Toni Honi!Toni 对这一改变感到非常兴奋,急切地等待着他的新个人身份证。当身份证终于寄到时,他盯着它看个不停,尤其对卡片背面的那三行字符着了迷。

没过多久,他就意识到这些行中包含了他的一些个人信息:名字、姓氏、出生日期以及个人身份证号(PIN)。他将身份证背面的内容抄在了一张纸上,并辨认出了他能识别的细节:

在第一行(由 55 个字母、2121 个数字以及 44< 字符组成)中, Toni 发现他的 PIN 码位于该行最后的 1111 位数字。

在第二行中,他识别出了自己的出生日期。该行的前两位数字代表年份,接下来的两位代表月份,最后两位代表日期。若这两位年份数字小于或等于 2424,则表示此人出生于 2121 世纪(即完整年份以 2020 开头);否则,此人出生于 2020 世纪(即完整年份以 1919 开头)。

在第三行中,Toni 找到了他的名字,随后是两个 < 字符,接着是他的姓氏。该行的其余部分都用 < 填充。

Toni 觉得这些发现非常有趣,现在他想邀请你加入其中。请根据身份证背面的这三行字符,提取并输出该人的名字、姓氏、出生日期以及个人身份证号(PIN)。

输入格式

输入包含三行字符,每行长度均为 3030。可能出现的字符包括大写英文字母、数字和字符 <。名字和姓氏各由一个单词组成,并以大写英文字母表示。这两个名字都会完全包含在第三行中。

输出格式

输出四行(即使并未解决问题的全部部分):

  • 第一行输出 Ime: 后接该人的名字,首字母大写(仅首字母为大写,其余小写)。
  • 第二行输出 Prezime: 后接该人的姓氏,首字母大写(仅首字母为大写,其余小写)。
  • 第三行输出 Datum rodjenja: 后接出生日期,格式为 DD-MM-YYYY\texttt{DD-MM-YYYY}
  • 第四行输出 OIB: 后接该人的个人身份识别号码(PIN)。

补充说明:从克罗地亚语翻译过来,Ime 代表名字,Prezime 代表姓氏,Datum rodjenja 代表出生日期。

样例

输入

IOHRV111111111233333333333<<<<
0102032M2202022HRV<<<<<<<<<<<5
TONI<<HONI<<<<<<<<<<<<<<<<<<<<

输出

Ime: Toni
Prezime: Honi
Datum rodjenja: 03-02-2001
OIB: 33333333333

请参考题目描述中的图片。

数据范围与提示

在某个子任务的所有测试数据中,若第一、二或四行输出正确,可获得该子任务五分之一的分数;若第三行输出正确,可获得该子任务五分之二的分数。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 2525 名字和姓氏都仅由一个字母组成
22 1515 出生年份在 20002000 年至 20242024 年之间
33 1010 无附加限制