纤云弄巧,飞星传恨,银汉迢迢暗度。金风玉露一相逢,便胜却人间无数。柔情似水,佳期如梦,忍顾鹊桥归路。两情若是久长时,又岂在朝朝暮暮。-- 《鹊桥仙·纤云弄巧》
又是一年七夕,不知道正在看此题的牛友,是否在想念、期待心中的另一半呢?多么浪漫的节日啊。
💒 派派也有非常想念的人,他想用自己的方式表达出自己的喜欢:
派派写代码时,非常喜欢在注释里藏着一些情话,他希望有一天想念的人能够知道这些。如此含蓄隐晦的表达方式,让派派的心上人摸不着头脑(不存在的心上人增加了)。
他求助你写出一个摘取注释的小工具,来统计这些情话。
输入描述:
更新:此段文本包含一段修正:
修正前:
数据保证,这些语言仅包含: c, cpp, cxx, cc, js, php, html, go, java, python。且代码长度不会超过
字符。 修正后:
数据保证,这些语言后缀仅包含: c, cpp, cxx, cc, js, php, html, go, java,py。且代码长度不会超过
字符。 -----
每份标准输入首先都将伴随着这份代码的文件名,如

。
随后一行包含一个整数

,描述这段代码的长度,接着的

行表示这份代码。
数据保证,第一行 -- 语言的文件名中不会包含空格、长度不超过

字符,且
仅会包含一个句点。
数据保证,这些语言后缀仅包含: c, cpp, cxx, cc, js, php, html, go, java,py。且代码长度不会超过
字符。 数据保证,不会包含超过一行的块注释。
数据保证,引号中不会包含注释所包含的字符,即,除非为注释,下述内容不会出现。
输出描述:
摘取出所有注释消息。格式如

其中

表示行号,从

开始编号。
双引号囊括的内容需要进行转义,如果你不明白什么是转义,请直接使用
%7C)
。
为此,你也许需要下面的表格:
说明 1:什么是

?
在 C 语言系列中,一行的内容可以用反斜杠传递至下一行,即 // some comments \
说明 2:什么是「内联其他语言」?
在 Html (网页文件)中,将嵌入多种层叠样式表(即 CSS)、脚本(如 PHP、JavaScript 等)以增强、美化网页功能。本题中将不会出现这样的情况。
说明 3:什么是 cxx, cc ?
这两者也是

++ 文件的后缀名。也许是为了区别

,

语言预处理器。
说明 4:Python 的注释是啥?
Python 的行注释以井号开头,块注释(也称文档注释)是如下的字符串:
说明 5:派派怎么这么毒瘤啊?
嘿嘿,嘿嘿嘿嘿 🤤。
示例1
输入
复制
Patricky.c
6
#include <stdio.h>
int main() { // I cares none but you tonight.
puts("qwq please dont condemn me for this problem.");
puts("If you've passed all problems except this, congrats! But I trust you could pass this one easily!");
return 0 ^ 0; /* 0 ^ 0 => 0 xor 0 equals 0 just like my eternal love to him.*/
}
输出
复制
#2: " I cares none but you tonight."
#5: " 0 ^ 0 => 0 xor 0 equals 0 just like my eternal love to him."
示例2
输入
复制
checker.py
17
import os
# ananana
cmd = 'python -c "'
while True:
try:
s = input()
cmd += s + (';\n' if s != '' else '')
except EOFError: break
cmd += '"'
if os.system(cmd) != 0 or os.popen(cmd).read().splitlines()[0][:7] != '1314520':
print('WA')
else:
print('AC')
示例3
输入
复制
patricky_loves_you.php
11
<?php
# Love all, trust a few, do wrong to none.
function call() {
return "anything";
} //it"
true /* I love you! */ && /* I love you! */ true;
var_dump(call());
?>
输出
复制
#2: " Love all, trust a few, do wrong to none."
#6: "it\""
#8: " I love you! "
#8: " I love you! "
说明
, actually the best programming language in the world, has two kinds of ways for line comment.
备注:
本题的版本经过了下面的一些迭代:
写出一段代码,其既是
++ 又是
,两份代码均能输出
。 这是最早的版本,思路来自 2022 Codeforces 愚人节。然而 spj 无法做到这样的事 😭。于是派派换了一个版本:
给出一段合法的
++ 代码,判断其是否也是一段
代码,如果是,那么他们能都输出
吗?我的想法当然不是让选手写一个解释器来翻译整段代码,而是通过内置函数
)
来判断,然而牛客(绝大多数 OJ 都如此)为了安全,当然不会暴露出系统相关的函数 😠。
不过这个问题本身也并不复杂,大家可以自己尝试一下。