Cho mã nguồn gồm n dòng của một ngôn ngữ mini hỗ trợ:
//, kéo dài đến hết dòng vật lý hiện tại./*, kết thúc ở */ đầu tiên gặp phải (có thể trải dài qua nhiều dòng).", không hỗ trợ ký tự thoát — bên trong chuỗi, ký tự " tiếp theo luôn kết thúc chuỗi ngay lập tức. Một chuỗi không kéo dài qua dòng: nếu gặp cuối dòng mà chưa gặp " đóng, chuỗi coi như tự kết thúc tại đó.Bên trong một chuỗi ký tự, các ký tự // hoặc /* không được coi là bắt đầu chú thích (được giữ nguyên).
Yêu cầu: loại bỏ toàn bộ nội dung chú thích khỏi mã nguồn (không chèn khoảng trắng thay thế), nhưng phải giữ nguyên số dòng của mã nguồn — các ký tự xuống dòng nằm bên trong một chú thích khối vẫn phải được giữ lại.
Ví dụ: Input 5 dòng:
int x = 1; // gan gia tri
/* day la
comment nhieu dong */ int y = 2;
string s = "http://neu.edu.vn"; // link
/* end */
Output 5 dòng (dòng 2 và dòng 5 trở thành rỗng):
int x = 1;
int y = 2;
string s = "http://neu.edu.vn";
Dòng đầu là số nguyên n (0≤n≤500). n dòng tiếp theo là mã nguồn (mỗi dòng độ dài không quá 200 ký tự).
In ra đúng n dòng là mã nguồn sau khi đã loại bỏ chú thích, giữ nguyên mọi ký tự khác (kể cả khoảng trắng) không thuộc phần bị loại bỏ.
Ví dụ:
Đầu vào:
5
int x = 1; // gan gia tri
/* day la
comment nhieu dong */ int y = 2;
string s = "http://neu.edu.vn"; // link
/* end */
Đầu ra:
int x = 1;
int y = 2;
string s = "http://neu.edu.vn";
Đầu vào:
0
Đầu ra:
Đang tải editor...