11 bool grid
[ROWS
][COLS
];
15 int main(int argc
, char **argv
)
22 while ((nread
= getline(&line
, &len
, stdin
)) >= 0) {
26 if (!strncmp (line
, "rect ", 5)) {
27 x
= strtol (line
+ 5, &end
, 10);
28 y
= strtol (end
+ 1, NULL
, 10);
29 for (i
= 0; i
< y
; i
++)
30 for (j
= 0; j
< x
; j
++)
32 } else if (!strncmp (line
, "rotate row y=", 13)) {
33 x
= strtol (line
+ 13, &end
, 10);
34 y
= strtol (end
+ 3, NULL
, 10);
35 for (i
= 0; i
< COLS
; i
++)
37 for (i
= 0; i
< COLS
; i
++)
38 grid
[x
][(i
+ y
) % COLS
] = row
[i
];
39 } else { // rotate column x=
40 x
= strtol (line
+ 16, &end
, 10);
41 y
= strtol (end
+ 3, NULL
, 10);
42 for (i
= 0; i
< ROWS
; i
++)
44 for (i
= 0; i
< ROWS
; i
++)
45 grid
[(i
+ y
) % ROWS
][x
] = col
[i
];
49 for (i
= 0; i
< ROWS
; i
++) {
50 for (j
= 0; j
< COLS
; j
++) {
51 putchar (grid
[i
][j
] ? '#' : ' ');
57 printf ("after %d instructions, %d pixels are lit\n", count
, lit
);