#S1002. Sanhai 的数据

Sanhai 的数据

题目背景

sanhai 正在检验 Oler 们造的题目数据文件是否符合规范。
每个数据文件应包含三个部分,且顺序固定:

  1. Title: 题目名称部分
  2. Input: 题目输入部分
  3. Output: 题目输出部分

但 Oler 们的文件可能出现以下问题:

  • 缺少某个部分
  • 部分顺序错误
  • 部分内容为空
  • 多次出现同一部分标识
  • 标识大小写不一致(例如 title:INPUT:

sanhai 需要编写程序,检查文件的完整性与顺序,并统计输入与输出部分的大小(单位:KB,保留两位小数,1 KB = 1024 字节)。


题目描述

给定一个数据文件的全部内容(按行输入),请你完成以下任务:

  1. 检查是否包含 TitleInputOutput 三个部分(忽略大小写)。
  2. 检查三部分的出现顺序是否为 Title → Input → Output。
  3. 如果缺少部分,按顺序输出缺少的部分名称(Title / Input / Output)。
  4. 如果顺序错误,输出 Order Error(即使缺少部分也要先输出缺少部分,再输出顺序错误)。
  5. 如果 Input 和 Output 部分都存在且顺序正确,计算它们的内容大小(不包括标识行本身),单位 KB,保留两位小数。
  6. 如果某部分多次出现,以第一次出现为准。

输入格式

  • 第一行一个整数 nn,表示文件的总行数。
  • 接下来 nn 行,表示文件的内容(可能包含空格、空行、大小写混合的标识)。

输出格式

  • 如果缺少部分,逐行输出缺少的部分名称(Title / Input / Output)。
  • 如果顺序错误,输出 Order Error
  • 如果 Input 和 Output 部分都存在且顺序正确,输出两行:
    • Input Size: X.XX KB
    • Output Size: Y.YY KB

样例输入 1

7
Title: DP Problem
Some description here
Input:
1 2
3 4
Output:
5

样例输出 1

Input Size: 0.01 KB
Output Size: 0.00 KB

样例输入 2

4
Title: Missing Parts
Input:
1 2

样例输出 2

Output

💡 样例输入 3

5
Input:
1 2
Title: Wrong Order
Output:
3

样例输出 3

Title
Order Error

样例输入 4

8
TITLE: Test
Some text
input:
1 2
OUTPUT:
3
output:
4

样例输出 4

Input Size: 0.01 KB
Output Size: 0.00 KB

数据范围与提示

  • 1n1051 \leq n \leq 10^5
  • 每行长度不超过 1000 字节
  • 计算大小时,换行符按 1 字节计入
  • 忽略标识行本身的大小