Страница 1 из 1

Pascal, длина раскрашенных отрезков

Добавлено: 02 ноя 2008, 12:37
maksimla
есть разукрашены 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.

Re: незнаю даже как решить на паскале

Добавлено: 02 ноя 2008, 16:24
Хыиуду
Проходим по всему файлу, находим минимальное 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);