7 void debug(const char *fmt
, ...) {
11 vfprintf(stderr
, fmt
, ap
);
18 char array
[LIMIT
][LIMIT
];
20 static void process(const char *str
) {
23 if (sscanf(str
, "#%d @ %d,%d: %dx%d\n", &a
, &b
, &c
, &d
, &e
) != 5) {
24 printf("bad input!\n");
27 if (b
+ d
> LIMIT
|| c
+ e
> LIMIT
) {
28 printf("recompile with larger LIMIT!\n");
31 debug("processing %d,%d: %dx%d\n", b
, c
, d
, e
);
32 for (i
= b
; i
< b
+ d
; i
++)
33 for (j
= c
; j
< c
+ e
; j
++)
37 int main(int argc
, char **argv
) {
38 size_t len
= 0, count
= 0;
43 if (!(stdin
= freopen(argv
[1], "r", stdin
))) {
48 while (getline(&line
, &len
, stdin
) >= 0) {
52 printf("read %zd lines\n", count
);
54 for (i
= 0; i
< LIMIT
; i
++)
55 for (j
= 0; j
< LIMIT
; j
++) {
56 debug("%d %d %d\n", i
, j
, array
[j
][i
]);
60 printf("found %zd overlaps\n", count
);