module s10a;
import util;

void main() {
    string[] commands = readText("input/10.txt").strip.splitter("\n").array;
    int x = 1;
    size_t commandIdx = 0;
    size_t crtIdx = 0;
    char[] crtRow;
    while (commandIdx < commands.length) {
        string command = commands[commandIdx++];
        drawCrt(crtIdx, crtRow, x);
        if (command.startsWith("addx")) {
            drawCrt(crtIdx, crtRow, x);
            x += command[5..$].to!int;
        }
    }
}

void drawCrt(ref size_t crtIdx, ref char[] crtRow, int x) {
    bool lit = x == crtIdx - 1 || x == crtIdx || x == crtIdx + 1;
    crtRow ~= lit ? '#' : '.';
    crtIdx++;
    if (crtIdx > 39) {
        crtIdx = 0;
        writeln(crtRow);
        crtRow.length = 0;
    }
}