- for (int x = 0; x<=maxx; x++) {
- for (int y = 0; y<=maxy; y++) {
- int matches = 0;
- for (int line = 0; line<nlines && matches < 2; line++)
- if (online(x, y, lines[line]))
- matches++;
- r = matches >= 2 ? r+1 : r;
- }
+ while (fgets(buf, 1000, stdin) != NULL) {
+ char *ptr = &buf[0];
+ int x1 = strtol(ptr, &ptr, 10);
+ ptr++;
+ int y1 = strtol(ptr, &ptr, 10);
+ ptr+=4;
+ int x2 = strtol(ptr, &ptr, 10);
+ ptr++;
+ int y2 = strtol(ptr, &ptr, 10);
+ if (x1 > x2)
+ SWAP(x1, x2);
+ if (y1 > y2)
+ SWAP(y1, y2);
+
+ //Vertical
+ if (x1 == x2)
+ for (int y = y1; y<=y2; y++)
+ mark_point(x1, y, &entries, &r);
+ //Horizontal
+ else if (y1 == y2)
+ for (int x = x1; x<=x2; x++)
+ mark_point(x, y1, &entries, &r);