Ответ:
Переход к информационному обществу совпал с острой фазой информационного кризиса - наиболее болезненной, мешающей дальнейшему развитию цивилизации проблемы. Общество столкнулось с противоречием между ограниченными возможностями человека по восприятию и переработке информации и существующими огромными потоками и массивами хранящейся информации. Необходимо согласовать информационный "голод" и информационную "лавину". Поэтому главным и наиболее ожидаемым положительным последствием информатизации должно стать преодоление этой проблемы. Одним из начальных шагов решения этой сложной задачи является разработка современных информационных технологий. Они должны позволить формулировать запрос на выполнение любых операций с информацией на языках, близких к естественному, эффективно отсекатьинформационный шум, доставлять нужные сведения в удобной для пользователя форме.
Другой важной задачей информатизации является реализация свободного доступа каждого человека к информационным ресурсам всей цивилизации. Сейчас этот доступ в значительной степени ограничен административными, межгосударственными и экономическими барьерами. Государство, международные организации через законодательные акты, соглашения, целевые программы должны разумно отрегулировать доступ к информации, обеспечивающей эффективное развитие цивилизации. Разумность регулирования заключается в том, что имеется опре-деленный спектр информации, закрытие которой обосновано государственными или корпоративными интересами. Процессы информатизации должны определить разумные границы доступа. Кроме этого, доступ должен быть согласован с соблюдением авторских прав. Основным принципом информационного обществадолжно стать утверждение: "Ограничение свободного распространения информации наносит вред государству".
Я лумаю либо А, либо Б. Пустая таблица, значит в ней ничего нет, нет ни значений, ни формул, но структуру таблицы содержать может. Я бы выбрал А.
Юра занимается регби и учиться на юриста. Влад занимается теннисом и через год будит физиком. Тимур занимается бегом и учиться на врача.
Из небольших ускорений можно предложить проверять до b[c], дальше всё равно ничего нет. Но всё равно алгоритм будет делать порядка n^2 операций, что при n = 10^5 достаточно много. Кстати, 2*10^9 еще помещается в longint, int64 не нужен.
Можно пойти другим путём. Отсортируем массив A[i] за n log n, а потом для того, чтобы определить уникальные элементы, достаточно одного прохода по массиву.
Я буду сортировать сортировкой слиянием, вы можете использовать любую другую достаточно быструю сортировку.
procedure merge(var a: array of longint; left1, right1, left2, right2: integer);
var
temp: array of longint;
i, j, k: integer;
begin
setLength(temp, right1 - left1 + right2 - left2 + 2);
i := left1;
j := left2;
k := 0;
while (i <= right1) and (j <= right2) do
begin
if a[i] <= a[j] then
begin
temp[k] := a[i];
inc(i);
end else begin
temp[k] := a[j];
inc(j);
end;
inc(k);
end;
while i <= right1 do
begin
temp[k] := a[i];
inc(k);
inc(i);
end;
while j <= right2 do
begin
temp[k] := a[j];
inc(k);
inc(j);
end;
for i := left1 to right1 do
a[i] := temp[i - left1];
for j := left2 to right2 do
a[j] := temp[j - left2 + right1 - left1 + 1];
end;
procedure mergeSort(var a: array of longint; left, right: integer);
var
t: longint;
begin
if right - left = 0 then exit;
if right - left = 1 then
begin
if a[left] > a[right] then
begin
t := a[left];
a[left] := a[right];
a[right] := t;
end;
exit;
end;
mergeSort(a, left, (left + right) div 2);
mergeSort(a, (left + right) div 2 + 1, right);
merge(a, left, (left + right) div 2, (left + right) div 2 + 1, right);
end;
var
a: array of longint;
i, n, count: integer;
begin
read(n);
setLength(a, n);
for i := 0 to n - 1 do
read(a[i]);
mergeSort(a, 0, n - 1);
count := 1;
for i := 1 to n - 1 do
if a[i] <> a[i - 1] then
inc(count);
writeln(count);
end.