#include <iostream>
#include <string>
using namespace std;
// generuje kolejną linię Cantora
string nextCantor(string line) {
string newLine = "";
for (char c : line) {
if (c == '#')
newLine += "###";
else
newLine += " ";
}
int n = newLine.length();
int third = n / 3;
// usuwamy środkową część
for (int i = third; i < 2 * third; i++) {
newLine[i] = ' ';
}
return newLine;
}
int main() {
int stopien = 6; // ← tutaj masz na stałe stopień 3
string line = "#";
cout << line << endl;
for (int i = 1; i <= stopien; i++) {
line = nextCantor(line);
cout << line << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gZ2VuZXJ1amUga29sZWpuxIUgbGluacSZIENhbnRvcmEKc3RyaW5nIG5leHRDYW50b3Ioc3RyaW5nIGxpbmUpIHsKICAgIHN0cmluZyBuZXdMaW5lID0gIiI7CgogICAgZm9yIChjaGFyIGMgOiBsaW5lKSB7CiAgICAgICAgaWYgKGMgPT0gJyMnKQogICAgICAgICAgICBuZXdMaW5lICs9ICIjIyMiOwogICAgICAgIGVsc2UKICAgICAgICAgICAgbmV3TGluZSArPSAiICAgIjsKICAgIH0KCiAgICBpbnQgbiA9IG5ld0xpbmUubGVuZ3RoKCk7CiAgICBpbnQgdGhpcmQgPSBuIC8gMzsKCiAgICAvLyB1c3V3YW15IMWbcm9ka293xIUgY3rEmcWbxIcKICAgIGZvciAoaW50IGkgPSB0aGlyZDsgaSA8IDIgKiB0aGlyZDsgaSsrKSB7CiAgICAgICAgbmV3TGluZVtpXSA9ICcgJzsKICAgIH0KCiAgICByZXR1cm4gbmV3TGluZTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgc3RvcGllbiA9IDY7IC8vIOKGkCB0dXRhaiBtYXN6IG5hIHN0YcWCZSBzdG9waWXFhCAzCgogICAgc3RyaW5nIGxpbmUgPSAiIyI7CiAgICBjb3V0IDw8IGxpbmUgPDwgZW5kbDsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBzdG9waWVuOyBpKyspIHsKICAgICAgICBsaW5lID0gbmV4dENhbnRvcihsaW5lKTsKICAgICAgICBjb3V0IDw8IGxpbmUgPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==