1.2. Крупное ограбление
Вася с друзьями ограбили банк. Каждый из них смог вынести по одному мешку с
золотом. Вскоре Васю поймали, но он отказался выдавать друзей и их количество.
Как выяснили следователи, в банке каждый мешок с золотом был промаркирован
неотрицательным числом, но сколько мешков было украдено банк сообщать не хотел.
Из некоторых показаний Васи следовало, что все числа на мешках, которые украли
грабители, были различны. Помогите сотрудникам правоохранительных органов
выяснить, какое максимальное количество человек могло участвовать в ограблении
банка.
Формат входных данных:
В первой строке входного файла задано целое число N
(1 ≤ N ≤ 106) — общее количество мешков с
деньгами. Во второй строке задано N целых чисел неотрицательных, не
превосходящих 106 — числа на мешках.
Формат выходных данных:
В выходной файл выведите одно число — какое максимальное количество
человек могло участвовать в ограблении банка.
Пример
input.txt
|
output.txt
|
2
2 3
|
2
|
3
4 3 4
|
2
|
Вариант решения:
Var a: array[1..1000] of integer; s: array[1..1000] of integer; n,i,k,l: integer; flag: boolean;
begin assign (input, 'input.txt'); reset (input); assign (output, 'output.txt'); rewrite (output); readln(input, N);
for i := 1 to n do read (input, a[i]);
for i := 1 to n do s[i]:=-1;
k := 1; for i := 1 to n do begin flag := true; for l := 1 to k do if s[l] = a[i] then flag := false;
if flag = true then begin s[k] := a[i];
k := k+1 end; end;
write (output,k-1); close (input); close (output);
end.
|