Much time has been passed since I last played minesweeper on my Windows machine in the campus... A lot has been changed since that time. Now I use Linux and I'm not in the campus any more :) I just thought: why not to implement this cool game on my own...
with two points: (x1, y1) = (2, 3) and (x2, y2) = (4, 1).
The fastest way to find out whether these two points share the same diagonal is the result of this expression:
bool result = (x1 + y1 == x2 + y2) or (x1 - y1 == x2 - y2)
Now let's complicate the task. Given matrix n x n with m points, find the minimum number of diagonals which contain at least two points. The first line of the input contains: n m. The next m lines contain points with coordinates (xi, yi).
Linux 3.18.3-201.fc21.x86_64 x86_64 $ tar -zxvf dmalloc-5.5.2.tgz dmalloc-5.5.2]$ cd dmalloc-5.5.2/ dmalloc-5.5.2]$ ./configure configure: configurations for the dmalloc library configure: build utilities checking for gcc... gcc ... checking for strtok... yes configure: creating ./config.status config.status: creating Makefile config.status: creating conf.h config.status: executing dmalloc.h.2 commands config.status: executing settings.h commands configure: configure: Please check-out Makefile and conf.h to make sure that configure: sane configuration values were a result. configure: configure: You may want to change values in settings.h before configure: running 'make'. configure: configure: To run the basic library tests, you can execute: configure: make light configure: or configure: make heavy configure: dmalloc-5.5.2]$ make rm -f dmalloc.h dmalloc.h.t cat ./dmalloc.h.1 dmalloc.h.2 ./dmalloc.h.3 > dmalloc.h.t mv dmalloc.h.t dmalloc.h rm -f arg_check.o gcc -g -O2 -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1 -I. -I. -c arg_check.c -o ./arg_check.o In file included from /usr/include/string.h:634:0, from arg_check.c:33: dmalloc.h:484:7: error: expected identifier or ‘(’ before ‘__extension__’ char *strndup(const char *string, const DMALLOC_SIZE len); ^ Makefile:362: recipe for target 'arg_check.o' failed make: *** [arg_check.o] Error 1