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

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

Форум «Всё о Паскале» _ Задачи _ Массивы (интересно)

Автор: vovsik 21.05.2004 4:26

Вот задачка: даны два неубывающих массива целых чисел (размерностями k и l). Найти число различных элементов среди них. И вот в чем весь прикол: ЧИСЛО ДЕЙСТВИЙ - ПОРЯДКА СУММЫ РАЗМЕРНОСТЕЙ ЭТИХ МАССИВОВ (K+L)

Автор: kile 21.05.2004 4:35

лол

Автор: BlackShadow 21.05.2004 7:13

Код

Type
 TArray=Array[Integer] Of Boolean;

Var
 i,n:Integer;
 Present:^Taray;

Const
 k=...;
 l=...;
 m1:Array[1..k] Of Integer = (...);
 m2:Array[1..l] Of Integer = (...);

Begin
 New(Present);
 For i:=-32768 To 32767 Do
   Present^[i]:=False;
 For i:=1 To k Do
   Present[m1[i]]:=True;
 For i:=1 To l Do
   Present[m2[i]]:=True;
 n:=0;
 For i:=-32768 To 32767 Do
   If Present^[i] Then
     Inc(n);
 WriteLn(n);
 Dispose(Present)
End.

Сложность реализации оценивается как O(k+l).

kile, а что такое "лол"?

Автор: Dark 21.05.2004 9:16

BlackShadow лол это lol.gif

Автор: BlackShadow 21.05.2004 15:05

Я даже догнал, что "лол" относился к названию темы. Это уж точно: полный "лол" lol.gif

Автор: vovsik 21.05.2004 22:49

задание По-внимательнее прочитайте! Пример:
1 массив: 1 1 2 3 5
2 массив: 1 2 2 4
число различных элементов=3

Автор: kile 21.05.2004 23:38

vovsik, а не стыдно такое спрашивать ?? это не такая уж и сложная задачка, чтобы ее не решить...
у меня сестра рядом... 7 класс... твою задачку за 20-30 минут на паскале написала. сама, без моей помощи.

Автор: vovsik 22.05.2004 16:37

ну, если не сложно, выложи ее! Просто код не работает толком

Автор: BlackShadow 22.05.2004 17:47

Задание по-понятней писать надо.
А то что получается:

Код

n:=0;
For i:=1 To Min(k,l) Do
 If m1[i]<>m2[i] Then
   Inc(n);
WriteLn(n)

Так что ли?
сложность тогда тут по-меньше будет...