Модераторы: Alx, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi|C++/C|Java]Преобразование последовательнос 
:(
    Опции темы
DeadLine
Дата 3.2.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мыслитель
**


Профиль
Группа: Завсегдатай
Сообщений: 736
Регистрация: 16.2.2006
Где: Готем

Репутация: нет
Всего: 51



Задана последовательность, содержащая n целых чисел. Необходимо найти число, которое встречается в этой последовательности наибольшее количество раз, а если таких чисел несколько, то найти минимальное из них, и после этого переместить все такие числа в конец заданной последовательности. Порядок расположения остальных чисел должен остаться без изменения.
Например, последовательность 1, 2, 3, 2, 3, 1, 2 после преобразования должна превратиться в последовательность 1, 3, 3, 1, 2, 2, 2.
Требуется написать программу, которая решает названную задачу.

Формат входных данных
Первая строка входного файла содержит число n — количество чисел во входной последовательности (3 ≤ n ≤ 200000). Следующая строка содержит входную последовательность, состоящую из n целых чисел, не превышающих по модулю 109. Все числа в строке разделены пробелом.

Формат выходных данных
В выходной файл выводится последовательность чисел, которая получается в результате названного преобразования. Все числа в последовательности должны быть разделены пробелом.

Пример входного и выходного файлов
trans.in    trans.out
7
1 2 3 2 3 1 2    1 3 3 1 2 2 2

PM   Вверх
Romikgy
Дата 3.2.2007, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 2
Всего: 146



Код

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Classes;

var
    sl,sl1: TStringList;
    digs: array of LongInt;
    i, max,m: LongInt;
begin
  { TODO -oUser -cConsole Main : Insert code here }
  SetLength(digs,109);
   sl:=TStringList.Create;
    sl.LoadFromFile('trans.in');
    max:=StrToInt(sl[0]);
    sl1:=TStringList.Create;
     sl1.Delimiter:=' ';
     sl1.DelimitedText:=sl[1];
     for i:=0 to max-1 do
     begin
       Inc(digs[StrToInt(sl1[i])]);
     end;
     max:=0;
     m:=0;
     for i:=0 to 108 do
     begin
       if digs[i]>max then
       begin
         max:=digs[i];
         m:=i;
       end;
     end;
     max:=0;
     for i:=sl1.Count-1 downto 0 do
     begin
      if StrToInt(sl1[i])=m then
        begin
          sl1.Delete(i);
          Inc(max);
        end;
     end;
     for i:=0 to max do
     sl1.Add(IntToStr(m));
     sl1.Text:=sl1.DelimitedText;
     sl1.SaveToFile('trans.out');
    sl1.Free;
   sl.Free;
  SetLength(digs,0);

end.




--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Strannik
Дата 3.2.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.1.2007

Репутация: нет
Всего: 2



Romikgy, там где эта задача предлагалась скорее всего никто не даст использовать Classes и т.д. а так - всё верно кажется, только всё это надо было реализовывать обычным способом, как в TP7.
PM MAIL   Вверх
Romikgy
Дата 3.2.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 2
Всего: 146



Strannik, об этом здесь небыло ни слова не сказано!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
V.A.KeRneL
Дата 3.2.2007, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vadim A. Kazantsev
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 3.12.2006
Где: Moscow, Russia

Репутация: нет
Всего: 14



Strannik, ну почему же? Ведь язык, указанный в заголовке, — именно Delphi, а не Pascal. К тому же можно на других объектно-ориентированных языках программирования, C++ и Java.



--------------------
«C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы»
---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")

PM MAIL IM ICQ AOL YIM MSN   Вверх
DeadLine
Дата 4.2.2007, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мыслитель
**


Профиль
Группа: Завсегдатай
Сообщений: 736
Регистрация: 16.2.2006
Где: Готем

Репутация: нет
Всего: 51



Препод сказал что ТП это фигня и пишите на дельфи
PM   Вверх
Strannik
Дата 4.2.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.1.2007

Репутация: нет
Всего: 2



Цитата

Препод сказал что ТП это фигня и пишите на дельфи
 

Да какая разница на чём написана прога, ведь в решении задачи главное - идея. А рассуждения насёт того что одно фигня - другое не фигня - это неправильно. Префразируя народную мудрость: сколько языков программирования ты знаешь - столько раз ты программист.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема »


 




[ Время генерации скрипта: 0.1186 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.