Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Jaguar
393 / 279 / 38
Регистрация: 06.08.2010
Сообщений: 834
1

Хороший гнусмас-мертвый гнусмас

25.02.2013, 16:39. Просмотров 444. Ответов 1
Метки нет (Все метки)

Добрый день. Есть задача из http://acm.timus.ru/.

Мое решение:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
FUNCTION phi(x1, y1, x2, y2:Integer):Real; // Функция определения угла между двумя отрезками с координатами концов (x1;y1) и (x2;y2).
Var cos_x, arccos_cos_x:Real;
BEGIN
cos_x:=(x1 * x2 + y1 * y2) / (sqrt(x1*x1 + y1*y1) * sqrt(x2*x2 + y2*y2)); // Косинус угла между двумя отрезками(формула скалярного произведения).
if cos_x = 1 then phi:=0   // Если косинус равен 1, то угол равен 0
else
if cos_x =-1 then phi:=180 // Если косинус равен -1, то угол равен 180
else
 begin
arccos_cos_x:=2 * 180/PI * ArcTan( sqrt ((1-cos_x) / (1+cos_x)) ); // Арккосинус угла между двумя отрезками(формула).
phi:=arccos_cos_x;
 end;
END;
 
Var D, x1, y1, x2, y2, N, i:Integer;
    x, y:array[1..30001] of Integer;
    a, a_1, a_2:Real;
    
BEGIN
ReadLn(D, x1, y1, x2, y2);             // Вводим дальность стрельбы D и координаты концов отрезков: (x1;y1) и (x2;y2).
ReadLn(N);                             // Вводим количество гнусмасов.
a:=phi(x1, y1, x2, y2);                // Угол между двумя отрезками, которые образуют сектор угла а.
 
for i:=1 to N do
ReadLn(x[i],y[i]);    // Вводим координаты гнусмасов.
 
for i:=1 to N do
 begin
 
a_1:=phi(x1, y1, x[i], y[i]);          // Угол между отрезком с координатами концов (x1;y1) и отрезком с координатами концов (x[i];y[i])
a_2:=phi(x2, y2, x[i], y[i]);          // Угол между отрезком с координатами концов (x2;y2) и отрезком с координатами концов (x[i];y[i])
 
if ( abs( a_1 + a_2 - a ) < 0.000001 ) AND ( sqr(x[i]) + sqr(y[i]) <= sqr(D) ) then WriteLn('Yes')  // Если гнусмас находится в секторе обстрела
                                                                                                    // и расстояние от домика Боба до него
                                                                                                    // не превышает дальности стрельбы, то пиши да, иначе нет.
else  WriteLn('No');
 end;
END.
Проверьте, пожалуйста, решение. Система где-то находит 1 ошибку.

Рисунок и условие к задаче:
0
Миниатюры
Хороший гнусмас-мертвый гнусмас   Хороший гнусмас-мертвый гнусмас  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2013, 16:39
Ответы с готовыми решениями:

Гнусмас NP-R518
упал со стола с помощью кошки, матрица кердык... Ребята, сколькло стоит матрица...

Мертвый scroll
Есть ли возможность сделать такую функцию на js, что бы в любой момент при ее...

Мертвый вывод Atmega 32
Добрый день. Приобрел новый мк Atmega32. Начал проверку выводов, обнаружил,...

Найти мертвый цикл
Здравствуйте! Помогите, пожалуйста, найти решение проблемы ... Имеется...

Nvidia мертвый экран
Всем привет. имеется древний ноут acer aspire 7739zg, после обновления дров...

1
Jaguar
393 / 279 / 38
Регистрация: 06.08.2010
Сообщений: 834
02.03.2013, 22:14  [ТС] 2
Ну кто-нибудь посмотрите пожалуйста... Все перепробовал - не идет.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2013, 22:14

Как восстановить мертвый биос?
Здравствуйте! Имеется ноутбук Lenovo Z580. Слетел биос (или стёрся). При...

Мертвый экран на Geforce GTX 560 ti
Всем привет! Подскажите, у меня такая проблема. Сидел на ютюбе, и комп сам...

*Мертвый* компьютер. Материнка 645Е мах2.
В начале стал зависать комп. После перезапуска мог работать сколь угодно, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru