Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

smirnvlad

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
const
    max = 100;
var
    str: string;
    chars: array[1..max] of char;
    count: array[1..max] of byte;
    charsC: byte;
    i,j: byte;
    odd, oddc: byte;
 
    res: longint;
 
    F: Text;
begin
    Assign(F, 'D.in');
    Reset(F);
    Read(F, str);
    Close(F);
 
    FillChar(chars, max, 0);
    FillChar(count, max, 0);
    CharsC:=0;
 
    for i := 1 to Length(str) do
    begin
        for j:= 1 to charsC do
            if chars[j]=str[i] then    break;
 
        if chars[j]=str[i] then
        begin
            count[j]:=count[j]+1;
        end else begin
            CharsC:=CharsC+1;
            chars[CharsC] := str[i];
            count[CharsC] := 1;
        end;
    end;
 
    oddc := 0;
    for i := 1 to CharsC do
    begin
        if count[i] mod 2 = 1 then
        begin
            odd := i;
            oddc := oddc+1;
        end;
        count[i] := count[i] div 2;
    end;
 
    res := 0;
    if (oddc=1) and (charsc=1) then
        res:=1
    else
    if (oddc < 2) and (charsc > 0) then
    begin
        res := 1;
        for i := charsc downto 1 do
        begin
            if count[i]>0 then
            begin
                res := (res * i) mod (1000*1000*1000);
                for j := 2 to count[i] do
                    res := (res * j) mod (1000*1000*1000);
            end;
        end;
    end;
 
 
    Assign(F, 'D.out');
    Rewrite(F);
        Writeln(f, res);
    Close(F);
end.
 

Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 18:26 11-11-2010 | Исправлено: smirnvlad, 18:33 11-11-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru