Мальчик Лёша, ученик 3го курса, очень хотел много денег, и поэтому вместо того, чтобы делать домашнее задание в университете, он много работал. Но вот его отчислили, и у него появилось ещё больше свободного времени! Он узнал у своего друга о том, что очень много зарабатывают строители, но так как у Лёши не было высшего образования, ему предложили работу укладчика дороги. Лёша выложил часть дороги, начиная с указателя на A-й километр до указателя на B-й километр. Затем Лёша взял новый грузовик с щебнем и выложил ещё часть дороги, начиная с указателя на C-й километр до указателя на D-й километр, при этом часть дороги могла быть покрыта дважды (так как у мальчика нет высшего образования, то его начальник мог заставить переделать какой-то из участков дороги). Кроме того Лёша мог выкладывать дорогу как справа налево, так и слева направо — свобода выбора.
Напишите программу, вычисляющую общую длину уложенной дороги.
Формат ввода
Первая строка ввода содержит четыре натуральных числа A,B,C и D, разделенных пробелами (1 ≤ A,B,C,D ≤ 109) — номера километров дороги, которую укладывал Лёша.
Формат вывода
Вывести одно целое число — общую длину уложенной дороги.
Пример 1
Ввод: 1 2 6 4; вывод: 3
Пример 2
Ввод: 1 6 2 4; вывод: 5
Тип данных — класс данных, характеризуемый членами класса и операциями, которые могут быть к ним применены (ISO/IEC/IEEE 24765-2010)[2].
Тип данных — категоризация абстрактного множества возможных значений, характеристик и набор операций для некоторого атрибута (IEEE Std 1320.2-1998)[3].
Тип данных — категоризация аргументов операций над значениями, как правило, охватывающая как поведение, так и представление (ISO/IEC 19500-2:2003)[4].
Тип данных — допустимое множество значений[5].
Тип определяет возможные значения и их смысл, операции, а также хранения значений типа. Изучается теорией типов. Неотъемлемой частью большинства языков программирования являются системы типов, использующие типы для обеспечения той или иной степени типобезопасности.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
double x1, x2, x3, y1, y2, y3;
Console.WriteLine("Введите координаты:");
x1 = Double.Parse(Console.ReadLine());
y1 = Double.Parse(Console.ReadLine());
x2 = Double.Parse(Console.ReadLine());
y2 = Double.Parse(Console.ReadLine());
x3 = Double.Parse(Console.ReadLine());
y3 = Double.Parse(Console.ReadLine());
double dist12 = Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2));
double dist13 = Math.Sqrt(Math.Pow((x3 - x1), 2) + Math.Pow((y3 - y1), 2));
double dist23 = Math.Sqrt(Math.Pow((x3 - x2), 2) + Math.Pow((y3 - y2), 2));
double P = dist12 + dist13 + dist23;
double p = P / 2;
double Area = p * (p - dist12) * (p - dist13) * (p - dist23);
Console.WriteLine("Площадь {0}", Area);
Console.ReadKey();
}
}
}