题号:NC54279
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
为了维护自己代码的版权,郭嘉烜决定尽可能地减少自己代码的可读性——他决定去掉自己代码中所有的注释,但不破坏除注释外的任何内容和格式。
“这样就没人能看懂我的代码了。”郭嘉烜心想。
输入描述:
若干行字符串,整体构成一个完整的、能够正常通过编译的C/C++程序,程序中有着丰富的注释:
(1)行注释:若是一个行注释,一行中,“//“开始后的内容及“//“本身属于注释;
(2)块注释:若是一个块注释,“/*“与“*/“中间的内容及“/*“ “*/“本身属于注释;
同时,程序还存在以下情况:
(1)反斜杠:“\“若出现在一行末尾,可以实现折行,该反斜杠后的另一行行首与反斜杠前的字符在逻辑上是相连的,它们视为在同一行;
(2)字符串:若是一个字符串(起始是“"“字符,结束是“"“字符是字符串的基本标志;“"“字符的前一个字符不为“\“,即不是转义字符),字符串内的注释(包括行注释、块注释)不会被解析成注释;
若当前字符不是注释或字符串的一部分,按照先从左到右,后从上到下的顺序,第一次出现“//”、“/*“、“"“分别为行注释、块注释、字符串开始的特征。
特别地,同学们可以利用本地编译器验证自己构造的情形的正确性。
输出描述:
若干行字符串,整体是输入的C/C++源程序去除注释之后的结果,去除注释时,不能破坏程序中除注释外的任何字符。
示例1
输入
复制
#include <iostream>
using namespace /* Hello */ std;
int main()/\
* Hello World! *\
/
{
cout << "Hello world!" << endl\
;
return 0;
}
输出
复制
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl\
;
return 0;
}