есть разукрашены n прямых отрезки. Даны этих каждого отрезка правого и левого координаты концов Li и Ri здесь i = 1,..,n. Напишите программу, находящую раскрашенных прямых половины длины.
Первичные данные записаны в файле duom.txt. На первой строчке написан натуральное число n
(1<=n<=1000). Патом на следущих n строчек записаны два натуральных числа , отделены одним пробелом, значющие правого и левого координаты концов L и R (-100000<=l<r<=100000). Результаты - раскрашенных прямых записать в файл rez.txt.
пример
начальные данные
5
-1 1
7 8
3 5
-2 2
4 6
результат
8
объяснение
отрезок (-1 1) находится в отрезке (-2 2) в середине, поэтому их общая длина равна отрезку (-2 2) длины 4.
отрезок (3 5) и (4 6) соединяются и поэтому общий отрезок (3 6) и длины 3. Непересекающиеся отрезки (-2 2),(3 6), (7 8 ) их общая сума длины равна 4 + 3 + 1 = 8.
Pascal, длина раскрашенных отрезков
Проходим по всему файлу, находим минимальное li и максимальное ri. Называем их lmin и rmax. Координаты пусть хранятся в массиве a: array[1..n, 1..2] of longint;, причем на a[i,1] - это li, а a[i,2] - это ri
Код: Выделить всё
len:=0;
flag:=0;
for i:=lmin to rmax do
begin
for j:=1 to N do
begin
if a[j,1]=i then inc(flag);
if a[j,2]=i then dec(flag);
end;
if flag>0 then inc(len);
end;
writeln(len);
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.