#P1048. 文件格式
文件格式
题目描述
NOIP(全国青少年信息学奥林匹克竞赛)自 1995 年开始举办,每年由中国计算机学会统一组织。选手在比赛中提交代码时,要按照以下格式进行提交:根文件夹命名为 BJ-01,指的是选手的地区和考号。task1 task2 task3 也是文件夹,指的是题目的名称。例如第一道题的题目叫作 task1,则需要在 BJ-01 文件夹下创建一个 task1 的文件夹。在文件夹里放入自己的代码文件,命名为 task1.cpp;
示例如图:
现在已知考试共有 4 道题目,你得到了一个选手提交的最终文件夹,现在你需要判定他的提交格式是否正确。格式正确的判定标准:
- 根目录是地区 + 考号,你可以认为根目录必须同时包含字母(大写或小写字母均可)和数字两种字符,且字母在前,数字在后。(A2B 这种字母与数字交替的情况也不符合要求,而 BJ01,BJJJ0001 都是符合要求的)根目录只能有一个。
- 第二级目录有 4 个文件夹,分别对应每道题目。你可以认为题目名一定为纯字母。(上图中的 task1 task2 仅为示例,实际上题目名称不会出现 1 2 等数字)
- 每一个题目文件夹中包含一个 .cpp 文件,即你可以认为所有选手都使用 C++ 完成代码。.cpp 文件的名称必须和题目名称相同。
- 本题中只需判断文件名是否正确,无需判断文件类型。即如果选手在 task 文件夹中放入了一个命名为 task.cpp 的文件夹,我们也认为他的格式是正确的。但假如 task.cpp 文件夹里面还有其他文件(即存在第四层目录),则格式错误。
输入格式
输入第一行包含一个正整数 ,表示 组数据。
每组数据首先给出一行一个正整数 ,表示文件关系的数量。
接下来包含 行,每行给出两个长度不超过 20 的字符串 ,代表 是 文件夹的子文件。保证每组数据给出的信息不会重复(即不会有同名文件出现在目录中的不同位置)且每次给出的字符串 和 不相同。字符串中可能包含大写字母,小写字母,数字以及 - . ( )
这四种特殊字符中的某几种。
输出格式
输出 行,每行输出一个 yes
或 no
表示文件格式是否符合标准。
5
2
BJ01 task
task task.cpp
8
task task.cpp
bJ01 task
bJ01 apple
apple apple.cpp
bJ01 Banana
Banana Banana.cpp
bJ01 candy
candy candy.cpp
8
123 task
task task.cpp
123 plane
plane plane.cpp
123 banana
banana banana.cpp
123 candy
candy candy.cpp
8
BJ01 task
task task.cpp
BJ01 apple
apple banana.cpp
BJ01 banana
banana apple.cpp
BJ01 candy
candy candy.cpp
8
BJ01 task
task task.cpp
BJ01 apple
apple apple.cpp
BJ01 banana
banana banana.cpp
BJ01 candy
candy candy.cpp.cpp
no
yes
no
no
no
说明
样例 1 的题目数量不够,只有 1 道题。
样例 2 正确。
样例 3 根目录的名称不是字母 + 数字的组合,只有数字没有字母。
样例 4 中的 apple 文件夹包含了 banana.cpp,代码文件的命名与题目命名不一致。
样例 5 中最后一行的 candy 文件夹包含了 candy.cpp.cpp 文件,命名有误,多了一个 .cpp。
测试点信息
性质 1:根目录只有一个且根目录的名称满足条件
性质 2:所有文件名均符合要求(只可能是第二级目录或根目录的数量出错)
性质 3:目录一定只有 3 级
测试点编号 | 具有性质 |
---|---|
1 | 1.2.3 |
2 | 1.3 |
3 | 2 |
4-5 | 无特殊性质 |