描述

小Cat Freda和小Cat Rainbow是好朋友~ 有一天,Freda给了Rainbow一段C++程序,请Rainbow去掉其中所有的注释和空行之后交给Ta。不过Rainbow还要去找其它朋友玩,木有空~ 就请你帮忙解决这个问题吧!幸运的是,Freda很讨厌反斜杠\,所以Ta的C++程序中没有反斜杠\出现。

本题中C++程序的注释规则如下:

  • C++中的 // 符号与Pascal中的 // 符号作用相同。
  • C++中的 /* */ 符号与Pascal中的 { } 或 (* *) 符号作用相同。
  • C++的字符用单引号''引起,字符串用双引号""引起。字符串中的注释符可能仅仅是文本,而起不到标识注释的功能。同样,注释中的引号也可能仅仅是注释文本,而起不到标识字符串的功能。例如"//233"是一个字符串,不包含注释;//"233"是注释,不是字符串。
  • 由于没有反斜杠\,所以程序中没有转义字符。Pascal选手可以忽略在字符串里打引号这一问题。

​其它声明:

  • 注1:空行指的是不含有任何字符的行。另外,如果某一行去掉注释后成为空行,则该行也应该被删除。
  • 注2:请使用gets或者readln分行读入,数据不保证逐字符读取的程序的评分正确性。

输入格式

一段C++程序片段。满足下列要求:

  • 任何数据中都不会出现反斜杠 \
  • 本题Final Test(最终测试)的所有数据在Windows(Visual Studio 2013)和Linux(GNU C++)上均编译通过
  • 用户提交Hunt(猎杀)的数据允许是一个编译不通过的代码片段(甚至仅仅是一个无意义的字符串),但是必须保证 ①输入输出均不为空;②输入文本的开始位置处于注释和字符串外部,结束位置处于注释和字符串外部或者//开头的注释之中;③输入的任何一个生效的/* */注释符号都必须在C++语法意义下有匹配的另一半符号。④输入的任何一个生效的引号 " " ' ' 都必须在C++语法意义下在本行内有匹配的另一半符号。

输出格式

去掉所有注释和空行之后的C++程序。

样例输入

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    cout<<"I love Contest Hunter !"; //233333
    /* You can visit our website by
           http://162.105.80.126
       or
           http://www.contesthunter.org
       The previous one may be much faster. */
    return 0;
}

样例输出

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    cout<<"I love Contest Hunter !"; 
    
    return 0;
}

数据范围与约定

  • 输入总长度不超过10000,所有字符都在1~126之间,并且没有反斜杠\。
  • 本题测评的比较方式为:忽略文末换行符后全文比对(不忽略行末空格和其它不可见字符)。

样例解释

  • //23333是注释,但要注意//之前有一个空格,不能去掉。
  • /* */是注释,弹药注意/*之前有四个空格,不能去掉。*/之后什么东西也没有,去掉注释后这一行成为空行,因此该行应该被删除。