Даю настоящие 10 (а не 5 баллов). Pascal (или C++) Задан массив, состоящий из N...

0 голосов
49 просмотров

Даю настоящие 10 (а не 5 баллов). Pascal (или C++)
Задан массив, состоящий из N элементов. Требуется найти количество различных элементов в этом массиве.
Проблема в том, что элементы могут быть до 2*10^{9}, а N до 100000.
Пробовала применить часть сортировки подсчётом. И здесь вылезли эти колоссальные числа. Помогите, пожалуйста.


Информатика | 49 просмотров
0

Можете почитать про ХФМЛ 27, если вам только не жалко тратить время на его изучение.

0

В других школах к 6 классу только начинают обьяснять, что такое программмирование.

0

Мне (и не только мне) говорили это просто огромное количество раз.

Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadArrInteger('Вводите:',ReadInteger('n='));
  Writeln('Различных элементов- ',a.Distinct.Count)
end.

Пример
n= 10
Вводите: 456 12 6432654 -35424 -323421341 0 6432654 634222 -234532 34
Различных элементов- 9

(150k баллов)