// The output of this C++ program is a copy of its own source code.
#include 
#include 
#include 

const int MANY_LINES= 24;
const int PRELIMINARY_LINES = 8;
const char QUOTE = (char)34;
const char COMMA = (char)44;

const string lines[MANY_LINES] = {
"// The output of this C++ program is a copy of its own source code.",
"#include ",
"#include ",
"#include ",
"",
"const int MANY_LINES= 24;",
"const int PRELIMINARY_LINES = 8;",
"const char QUOTE = (char)34;",
"const char COMMA = (char)44;",
"",
"const string lines[MANY_LINES] = {",
"};",
"",
"int main( )",
"{",
"    int i;",
"    for (i = 0; i < PRELIMINARY_LINES; ++i)",
"        cout << lines[i] << endl;",
"    for (i = 0; i < MANY_LINES; ++i)",
"        cout << QUOTE << lines[i] << QUOTE << COMMA << endl;",
"    for (i = PRELIMINARY_LINES; i < MANY_LINES; ++i)",
"        cout << lines[i] << endl;",
"    return EXIT_SUCCESS;",
"}",
};

int main( )
{
    int i;
    for (i = 0; i < PRELIMINARY_LINES; ++i)
        cout << lines[i] << endl;
    for (i = 0; i < MANY_LINES; ++i)
        cout << QUOTE << lines[i] << QUOTE << COMMA << endl;
    for (i = PRELIMINARY_LINES; i < MANY_LINES; ++i)
        cout << lines[i] << endl;
    return EXIT_SUCCESS;
}