1 of 5

Последовательность

Дана последовательность целых чисел. Члены последовательности не превосходят по модулю двух миллиардов.

�Требуется написать программу, которая определит число различных членов в заданной последовательности.

�Технические требования:�Входной файл: INPUT.TXT�Исходный файл: OUTPUT.TXT

Ограничение по времени: 3 секунды.

​

Формат входных данных:

В первой строке указано N(1<=N<=10000) – число членов последовательности. Далее следует N строк, каждая из которых содержит одно число – член последовательности.

​

Формат исходных данных:

Одна строка, содержащая число различных членов.

2 of 5

При выполнении задания мне понадобились знания об одномерных массивах и функциях.

Массив представляет собой последовательность ячеек памяти, в которых хранятся однотипные данные. Каждая ячейка содержит элемент массива. Элементы нумеруются по порядку, но необязательно начиная с единицы (хотя в языке программирования Pascal чаще всего именно с нее). Порядковый номер элемента массива называется индексом этого элемента.

Функция - это часть программы, которая вычисляет и возвращает значение. Если в программу включается новая, нестандартная функция, то ее необходимо описать в тексте программы, после чего можно обращаться к ней из программы. Функция может иметь собственные локальные константы, типы, переменные, процедуры и функции. Описание функций в Паскале аналогично описанию процедур.

​

3 of 5

Program p;

const n_max=10000;

type TArray=array [1..n_max] of integer;

var a:TArray;

b:TArray;

i,n,kol_b,x:integer;

rez:boolean;

f,j:text;

Function ISS(x:integer; n_b:integer; b:TArray): boolean;

var rez:boolean; i:integer;

begin

rez:=False;

for i:=1 to n_b do

if b[i]=x then rez:=True;

ISS:=rez;

end;

​

​

Begin

Assign(f,'input.txt');

Reset(f);

Readln(f,n);

For i:=1 to n do

Read(f,a[i]);

Assign(j,'output.txt');

Rewrite(j);

kol_b:=0;

for i:=1 to n do begin

if ISS(a[i],kol_b,b)= False then begin

inc(kol_b);

b[kol_b]:=a[i]; end;

end;

Writeln(j,kol_b);

Close(f);

Close(j)

End.

4 of 5

Тесты для программы

5

3

-5

6

3

7

​

4

​

​

6

15

3

37

89

-56

34

​

6

​

​

​

​

​

​

​

​

​

7

100

57

-349

985

400

985

13

​

6

​

​

​

​

​

​

​

​

8

1097

256

679

75

-3

75

1097

679

​

5

​

​

​

​

​

​

​

9

-589

321

2455

-3215

7

13

907

43

14

​

9

​

​

​

​

​

​

10

653

389

278

9654

-653

389

278

-9654

27

27

​

7

​

​

​

​

​

11

134

257

804

2375

-806

804

134

-25

76

34

23

​

9

​

​

​

​

12

147

1975

567

7432

421

632

632

421

7432

-567

1975

147

​

7

​

​

​

13

346

4216

74

-32

7543

9087

467

-346

21

67

32

3905

9087

​

12

​

​

14

345

5754

6823

890

-356

-356

823

5754

1589

345

434

43

193

21

​

11

​

15

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

​

15

5 of 5

Спасибо за внимание