#include <iostream>
using namespace std;
int main()
{
char ch, next;
cout << "Enter C program (Ctrl+D to finish):\n";
while (cin.get(ch))
{
if (ch == '/')
{
if (cin.get(next))
{
// Single-line comment
if (next == '/')
{
while (cin.get(ch) && ch != '\n')
;
if (ch == '\n')
cout << '\n';
}
// Multi-line comment
else if (next == '*')
{
while (cin.get(ch))
{
if (ch == '*')
{
if (cin.get(next) && next == '/')
break;
}
}
}
// Normal division operator
else
{
cout << '/';
cout << next;
}
}
}
else
{
cout << ch;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7CiAgICBjaGFyIGNoLCBuZXh0OwoKICAgIGNvdXQgPDwgIkVudGVyIEMgcHJvZ3JhbSAoQ3RybCtEIHRvIGZpbmlzaCk6XG4iOwoKICAgIHdoaWxlIChjaW4uZ2V0KGNoKSkKICAgIHsKICAgICAgICBpZiAoY2ggPT0gJy8nKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGNpbi5nZXQobmV4dCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIFNpbmdsZS1saW5lIGNvbW1lbnQKICAgICAgICAgICAgICAgIGlmIChuZXh0ID09ICcvJykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY2luLmdldChjaCkgJiYgY2ggIT0gJ1xuJykKICAgICAgICAgICAgICAgICAgICAgICAgOwoKICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1xuJykKICAgICAgICAgICAgICAgICAgICAgICAgY291dCA8PCAnXG4nOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIE11bHRpLWxpbmUgY29tbWVudAogICAgICAgICAgICAgICAgZWxzZSBpZiAobmV4dCA9PSAnKicpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNpbi5nZXQoY2gpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09ICcqJykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNpbi5nZXQobmV4dCkgJiYgbmV4dCA9PSAnLycpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gTm9ybWFsIGRpdmlzaW9uIG9wZXJhdG9yCiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY291dCA8PCAnLyc7CiAgICAgICAgICAgICAgICAgICAgY291dCA8PCBuZXh0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgY2g7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9