blob: 0778440bcbee472ddec312eb2492355f589e25bb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#include <stdio.h>
#include <stdlib.h>
typedef unsigned char byte;
typedef unsigned uint;
enum { Len = 1000 };
static byte fabric[Len][Len];
static struct {
uint x, y, w, h;
} claims[2 * Len];
int main() {
uint n = 0;
while (!feof(stdin)) {
scanf(
"#%*u @ %u,%u: %ux%u\n",
&claims[n].x, &claims[n].y, &claims[n].w, &claims[n].h
);
for (uint x = 0; x < claims[n].w; ++x) {
for (uint y = 0; y < claims[n].h; ++y) {
fabric[claims[n].x + x][claims[n].y + y]++;
}
}
n++;
}
uint count = 0;
for (uint x = 0; x < Len; ++x) {
for (uint y = 0; y < Len; ++y) {
if (fabric[x][y] > 1) count++;
}
}
printf("%u\n", count);
uint i;
for (i = 0; i < n; ++i) {
uint overlap = 0;
for (uint x = 0; x < claims[i].w; ++x) {
for (uint y = 0; y < claims[i].h; ++y) {
if (fabric[claims[i].x + x][claims[i].y + y] > 1) overlap = 1;
}
}
if (!overlap) break;
}
printf("%u\n", 1 + i);
}
|