#define
Time Limit: 1 Second Memory Limit: 32768 KB
We can use '#define' to define macro in C programming language. Now the task for you is to replace the macro by its actual content. Notice that we can use '#undef' to undefine a marco. Do NOT pay any attention to the detail of the program written in the input file, for there may be mistakes. Keep in mind that all you should be concerned about is '#define' and '#undef'.
Input
There are multiple test cases, each represents a program, which begins with
the string "//PROGRAMBEGIN" in a single line, ends with the string
"//PROGRAMEND" in a single line. It is guaranteed that,
1) the '#define' or '#undef' sentence is in one line, and '#' is at leftmost
position of the line,
2) there is not any constant string in the program, and all the characters in
the input file are either alpha characters ('A'-'Z','a'-'z'), numbers('0'-'9'),
or character in "#/+:\t\n", and
3) the '#define' and '#undef' is always right, that is, a marco is never redefined
and an inexistent marco is never undefined.
4) There are 20 macros in a program at most.
Output
For each test case, you should output the program with all the marcos replaced
by its real content. Leave alone the format of the part that has no relation
with any marcos. Obtain more information from the sample output.
Print 20 dashes after each test case.
Sample Input
//PROGRAMBEGIN #define ZOJ Zhejiang University Online Judge ZOJ //PROGRAMEND //PROGRAMBEGIN #define ACM Association for Computing Machinery #define ICPC International Collegiate Programming Contest ACM ICPC #undef ACM ACM ICPC //PROGRAMEND
Sample Output
#define ZOJ Zhejiang University Online Judge Zhejiang University Online Judge -------------------- #define ACM Association for Computing Machinery #define ICPC International Collegiate Programming Contest Association for Computing Machinery International Collegiate Programming Contest #undef ACM ACM International Collegiate Programming Contest --------------------Submit
Source: ZOJ Monthly, September 2003