![]() |
|
|
|
|
#1
|
|||
|
|||
|
Текст задачи:
Государственный комитет статистики РФ оценил IQ студентов по 32000-бальной шкале. Далее решили выяснить, есть ли такой IQ, который преобладает в студенческой среде, то есть тот, который встречается более чем N/2 раз, где N – количество студентов в России, N<400000. Составить программу, которая помогла бы это сделать. Исходные данные: Файл исходных данных содержит не более 400000 строк, в каждой из которых записано одно целое число из диапазона от 0 до 32000. Выходные данные: Записать в выходной файл НЕТ РЕШЕНИЯ, если нет преобладающего IQ или его значение в противном случае. Помогите плз. |
|
#2
|
||||
|
||||
|
Код:
var
count, n, best: integer;
iq: array of integer;
f: TextFile;
begin
AssignFile(f, 'input.txt');
Reset(f);
SetLength(iq, 32001);
for n := 0 to 32000 do
iq[n] := 0;
count := 0;
while not Eof(f) do
begin
Readln(f, n);
inc(iq[n]);
inc(count);
end;
CloseFile(f);
count := count div 2;
best := 0;
for n := 0 to 32000 do
if iq[n] >= count then
if iq[n] > best then
best := iq[n];
AssignFile(f, 'output.txt');
Rewrite(f);
if best <> 0 then
Writeln(f, best)
else
Writeln(f, 'НЕТ РЕШЕНИЯ');
CloseFile(f);
Readln;
end.Последний раз редактировалось BoRoV, 08.12.2010 в 20:30. |
|
#3
|
|||
|
|||
|
спасибо тебе большое. только при нажатии кнопки выскакивает i\o error'ы 104 и 32, но с этим я разберусь надеюсь.
|