Последовательность
Дана последовательность целых чисел. Члены последовательности не превосходят по модулю двух миллиардов.
�Требуется написать программу, которая определит число различных членов в заданной последовательности.
�Технические требования:�Входной файл: INPUT.TXT�Исходный файл: OUTPUT.TXT
Ограничение по времени: 3 секунды.
Формат входных данных:
В первой строке указано N(1<=N<=10000) – число членов последовательности. Далее следует N строк, каждая из которых содержит одно число – член последовательности.
Формат исходных данных:
Одна строка, содержащая число различных членов.
При выполнении задания мне понадобились знания об одномерных массивах и функциях.
Массив представляет собой последовательность ячеек памяти, в которых хранятся однотипные данные. Каждая ячейка содержит элемент массива. Элементы нумеруются по порядку, но необязательно начиная с единицы (хотя в языке программирования Pascal чаще всего именно с нее). Порядковый номер элемента массива называется индексом этого элемента.
Функция - это часть программы, которая вычисляет и возвращает значение. Если в программу включается новая, нестандартная функция, то ее необходимо описать в тексте программы, после чего можно обращаться к ней из программы. Функция может иметь собственные локальные константы, типы, переменные, процедуры и функции. Описание функций в Паскале аналогично описанию процедур.
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.
Тесты для программы
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
Спасибо за внимание