#include int status; int array[200][2]; int max; int iter; int res; int lefts, ups, downs, rights; int left(int); int up(int); int right(int); int down(int); int main() { FILE *in = fopen("video.in","r"); for(iter = 1; ; iter++) { int i; for(i = 0; i < 200; i++) array[i][0] = array[i][1] = 0; lefts = ups = downs = rights =0; fscanf(in, "%d", &max); if (max == 0) break; status = 0; for(i = 0; i < max; i++) { fscanf(in, "%d", &array[i][0]); fscanf(in, "%d", &array[i][1]); } if(array[0][0] == array[1][0] && array[0][1] < array[1][1]) res = left(0); else if(array[0][0] == array[1][0] && array[0][1] > array[1][1]) res = right(0); else if(array[0][0] < array[1][0] && array[0][1] == array[1][1]) res = up(0); else if(array[0][0] > array[1][0] && array[0][1] == array[1][1]) res = down(0); if((res +1 == max) && (lefts <= rights) && (ups <= downs)) printf("Floor #%d\nSurveillance is possible.\n\n", iter); else printf("Floor #%d\nSurveillance is impossible.\n\n", iter); } fclose(in); return(0); } int left(int akt) { int h = 0; if(status > 4) return akt; status++; if(akt < max) { while(akt+1 < max && (array[akt][0] == array[akt+1][0] || array[akt][1] < array[akt+1][1] ) ) { if(array[akt][1] < array[akt+1][1]) ups += array[akt+1][1] - array[akt][1]; akt++; } return(up(akt)); } else return 0; } int up(int akt) { int h = 0; if(status > 4) return akt; status++; if(akt < max) { while(akt+1 < max && (array[akt][0] < array[akt+1][0] || array[akt][1] == array[akt+1][1] ) ) { if(array[akt][0] < array[akt+1][0]) rights += array[akt+1][0] - array[akt][0]; akt++; } return(right(akt)); } else return 0; } int right(int akt) { int h = 0; if(status > 4) return akt; status++; if(akt < max) { while(akt+1 < max && (array[akt][0] == array[akt+1][0] || array[akt][1] > array[akt+1][1] ) ) { if(array[akt][1] > array[akt+1][1]) downs += array[akt][1] - array[akt+1][1]; akt++; } return(down(akt)); } else return 0; } int down(int akt) { int h = 0; if(status > 4) return akt; status++; if(akt < max) { while(akt+1 < max && (array[akt][0] > array[akt+1][0] || array[akt][1] == array[akt+1][1] ) ) { if(array[akt][0] > array[akt+1][0]) lefts += array[akt][0] - array[akt+1][0]; akt++; } return(left(akt)); } else return 0; }