This puzzle is a prelude to a hard one, and also to an optimization (code golf) puzzle. It is quite easy, the aim is to make your androids progress in a maze of floors and elevators, sacrificing some of them to change direction.
Note the usage of * in scanf formatting, to skip an item.
#include <stdlib.h> #include <stdio.h> int main(int argc, char** argv) { // number of floors, exit position on last floor, a floor nb, a position int N, exit, f, pos; scanf("%d%*d%*d%*d%d%*d%*d%*d", &N, &exit); // elevators positions int elevators[N]; for (int i = 0; i < N-1; i++) { scanf("%d", &f); scanf("%d", &elevators[f]); } elevators[N-1] = exit; char direction[5]; while (1) { scanf("%d%d%s", &f, &pos, direction); // -1 if direction is LEFT, 1 if it is right int d = strcmp(direction, "M"); if (f == -1) printf("WAIT\n"); else if ((d < 0 && pos < elevators[f]) || (d > 0 && pos > elevators[f]) ) printf("BLOCK\n"); else printf("WAIT\n"); } return EXIT_SUCCESS; }