Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Программирование _ Ещё одна задачка

Автор: Fomik Среда, 07 Мая 2008, 16:55

Здравствуйте. Вот задачка на паскале:
С клавиатуры вводится натуральное число n - количество отрезков на координатной прямой. Затем вводятся n пар целых чисел - координаты концов отрезков. Найдите максимальное число k, для которого существует точка на прямой, покрытая k отрезками.
Я решил эту задачу, но она работает не верно для отрицательных координат. Помогите найти и исправть ошибку. Заранее благодаре.

Код:

Var
x, y: Array[1..100] Of Integer;
n, k, i, j, t, t1, t2, h: Integer;
Begin
ReadLn(n);
For i := 1 To n Do
Begin
Read(x[i]);
Read(y[i]);
End;
For i := 1 To n-1 Do
Begin
For j := 1 To n-1 Do
Begin
If ((x[j] > x[j+1]) Or (y[j] > y[j+1])) Then
Begin
t := x[j];
x[j] := x[j+1];
x[j+1] := t;
t := y[j];
y[j] := y[j+1];
y[j+1] := t;
End;
End;
End;
t1 := x[1];
t2 := y[n];
h := 0;
For i := t1 To t2 Do
Begin
For j := 1 To n Do
Begin
If ((i >= x[j]) And (i <= y[j])) Then
Begin
Inc(h);
End;
End;
If (Abs(i) = h) Then
Begin
t := i;
End;
h := 0;
End;
Writeln(t);
ReadLn;
End.

Автор: Fomik Среда, 21 Мая 2008, 13:15

вот более совершенный код:
Var
x, y, arr1, arr2: Array[1..100] Of Integer;
n, k, i, j, t, t1, t2, h: Integer;
Begin
ReadLn(n);
For i := 1 To n Do
Begin
Read(x[i]);
Read(y[i]);
End;

For i := 1 To n Do
Begin
arr1[i] := x[i];
arr2[i] := y[i];
End;
For i := 1 to n-1 Do
Begin
For j := 1 To n-1 Do
Begin
If (x[j] > x[j+1]) Then
Begin
t := x[j];
x[j] := x[j+1];
x[j+1] := t;
End;
End;
End;
For i := 1 To n-1 Do
Begin
For j := 1 To n-1 Do
Begin
If (y[j] > y[j+1]) Then
begin
t := y[j];
y[j] := y[j+1];
y[j+1] := t;
End;
End;
end;
If (x[1] < y[1]) Then
Begin
t1 := x[1];
End
Else
Begin
t1 := y[1];
End;
If (x[n] > y[n]) Then
Begin
t2 := x[n];
End
Else
Begin
t2 := y[n];
End;
h := 0;
For i := t1 To t2 Do
Begin
For j := 1 To n Do
begin
If ((i >= arr1[i]) And (i <= arr2[i])) Then
begin
Inc(h);
End;
If (i = h) Then
Begin
k := i;
End;
End;
End;
WriteLn(k);
ReadlN;
End.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)