/* A. Видимост Даден е профил на местност - графика на частично линейна непрекъсната функция. Зададени височините - координатите y за цели стойности на x (0 < x < N, 1 < N < 1000). По дадени x1 и х2 (0 < x1 < x2 < N) да се определи има ли видимост между (x1,y1) и (x2,y2), т.е. отсечката с краища тези точки да не пресича профила на местността. Вход - файл A.IN: Първият ред на файла съдържа броя N на точките x. Следващите редове съдържат N цели числа - височината на профила в съответната точка х. На следващия ред е зададен броят M на двойките точки, между които трябва да се определи видимостта. Следват M реда с x координатите на тези двойки точки. Цялата тази структура се повтаря за различни профили и различни двойки точки. Последният ред на файла съдържа числото 0 за стойност на N. Изход - файл A25.OUT: За всеки пример се извеждат M реда, които съдържат числата 1 или 0 в зависимост от това дали има видимост (1) или няма видимост (0) между точките, зададени във входния файл. Примерен вход (съдържание на файла A.IN): 4 1 3 1 0 2 1 3 2 4 3 2 -1 2 3 1 2 1 3 2 3 Примерен изход (съдържание на файла A25.OUT): 0 1 1 1 1 */ #include #include using namespace std; int h[1000]; bool check(int x1, int x2) { double a=(h[x1-1]-h[x2-1])/(double(x1)-x2); double b=(x1*h[x2-1]-x2*h[x1-1])/(double(x1)-x2); for (int i=x1+1; i> num; while (num>0) { if (num>0) { for (int i=0; i> h[i]; int pair; fin >> pair; for (int i=0; i> x1 >> x2; if (check(x1, x2)) fout << "1\n"; else fout << "0\n"; } } fin >> num; } return 0; } ------------------------------------------------------------ 1 3 1 0 2 1 3 2 4 3 2 -1 2 3 1 2 1 3 2 3 20 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 6 1 4 2 9 1 20 12 20 13 20 8 10 900 100 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 100 21 34 56 78 91 34 54 68 20 23 56 78 91 24 53 56 78 45 33 99 102 111 121 132 9000 5 1 900 2 899 3 898 4 897 5 896 0 ------------------------------------------------------------ 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 ------------------------------------------------------------