eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Вектор. Скалярное произведение

Вектор. Скалярное произведение

Даны два вектора. Найдите их скалярное произведение и угол между ними.

Напишите код согласно следующего интерфейса:

class Vector // C++
{
public:
  int dx, dy;
  Vector(void); // Конструктор. Прочитайте координаты вектора
  double Len(void); // Возвращает длину вектора
  int operator *(Vector &b); // Перегрузка оператора *: возвращает скалярное произведение векторов
  double GetAngle(Vector &b); // Возвращает в радианах угол между текущим вектором и вектором b
};

prb7449.gif

class Vector // Java
{
  private int dx, dy;
  Vector(); // Конструктор, создает нулевой вектор
  Vector(int dx, int dy); // Конструктор, создает вектор (dx, dy)
  public double getLength(void); // Возвращает длину вектора
  public int Scalar(Vector v); // Возвращает скалярное произведение текущего вектора и вектора v
  public double GetAngle(Vector v); // Возвращает в радианах угол между текущим вектором и вектором v
};

Входные данные

Четыре целых числа - координаты ненулевых векторов. Все числа по модулю не превосходят 10000.

Выходные данные

В первой строке выведите скалярное произведение двух векторов, а во второй выведите величину неориентированного угла между векторами с точностью до пяти десятичных знаков. Выводимое число должно принадлежать интервалу [0; π].

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
2 1 3 5
Выходные данные #1
11
0.56673
Автор Михаил Медведев
Источник Язык C++, Java