QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100

#3255. LogDB

Statistics

LogDB 数据库中填充了事实(facts)。事实由一个名称以及一个包含名称列表的括号主体组成。这类似于函数调用:

fact1(arg1, arg2, arg3, 4, 4) thing(p1, arg2, p3)

fact1 是事实的名称,括号中的名称列表是该事实的参数。thing 是另一个事实。

列表中的名称由逗号和可选的空格分隔。列表中至少会有一个名称。名称由字母数字字符(a–z, A–Z, 0–9)加上 _ 组成。但是,事实的名称和主体中的名称不能以 _ 开头。名称、括号和逗号前后可以有空格。不过,一个事实或查询不能跨行。

具有不同参数数量的事实被视为不同的事实。同一个事实可以在数据库中出现多次。

查询(Queries)与事实类似,但参数列表中可以包含变量。变量是以 _ 开头的名称。

查询会在数据库中搜索与查询名称相同、参数数量相同,且事实主体中的名称与查询主体中对应位置的名称相匹配的事实。

仅由 _ 组成的变量是特殊的,它可以匹配任何名称。除 _ 以外的变量也可以匹配任何名称,但如果该变量在同一个查询中出现多次,则事实中对应位置的名称必须相同。例如,查询:

fact1(arg1, _X, _X, check, check)

将匹配 fact1(arg1, arg2, arg3, 4, 4)

变量仅在它们出现的查询中定义。如果它们出现在不同的查询中,则它们之间没有必然联系。

输入由两部分组成:事实和查询。测试数据没有语法错误。

事实部分由一系列最多 200 个字符的行组成。该部分以一个空行结束。每一行包含若干个事实,事实之间可能(也可能不)由空格分隔。事实部分总共不超过 200 行。

查询部分由一系列最多 200 个字符的行组成。该部分以文件结束符(EOF)结束。每一行是一个查询。查询部分总共不超过 200 行。

对于每个查询,请以整数形式打印该查询返回的事实数量。数值之间应以换行符和/或空格分隔。

样例

输入 1

test(arg1, arg2,arg3) test(1,2,3,not4)5(five) five_seven(john_smith,10_17_57)
foo(1,2,3,4) foo(5,6,7,8) foo(1,2,7,8)arc(80) foo(abc,xyz)
bar(1,2) bar (7,8) zoom(8,7)
arc(80) nofoo(alpha,d1,d2,d1,d4,d1)
foo(bar,spam) foo(more,less)

test(_,_,_,_)
arc(80)
foo(bar,_)
foo(_,spam)
foo(_,less)
nofoo(_, _p1, _, _p1, _, _p1)
foo(bar,less)
foo(_,_,_,_)
foo(_,_,30,40)
foo(_,_,30,40)
foo(_,_,30,40)
foo(_x,_,30,40)
foo(_,_,30,40)

输出 1

1
2
1
1
1
1
0
3
3
3
3
3
3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.