Страница 5 из 5

Re: Кто лучше?

СообщениеДобавлено: 06 фев 2010, 23:10
Alexsandrit
Имеется список результатов голосования избирателей за несколько
партий, в виде списка названий данных партий.
На вход программе в первой строке подается количество избирателей
в списке N. В каждой из последующих N строк записано название
партии, за которую проголосовал данный избиратель, в виде
текстовой строки. Длина строки не превосходит 50 символов,
название может содержать буквы, цифры, пробелы и прочие
символы.
Пример входных данных:
6
Party one
Party two
Party three
Party three
Party two
Party three
Программа должна вывести список всех партий, встречающихся в
исходном списке, в порядке убывания количества голосов, отданных
за эту партию. При этом название каждой партии должно быть
выведено ровно один раз, вне зависимости от того, сколько голосов
было отдано за данную партию.
Пример выходных данных для приведенного выше примера входных
данных:
Party three
Party two
Party one
При этом следует учитывать, что количество голосов избирателей в
исходном списке может быть велико (свыше 1000), а количество
различных партий в этом списке не превосходит 10.

Re: Кто лучше?

СообщениеДобавлено: 07 фев 2010, 00:52
DPX-Infinity
Код: Выделить всёРазвернуть
import Data.Map as M
import Data.List
import System.IO
import System.Environment

main = fmap head getArgs >>= fmap (tail . lines) . readFile >>= putStr . doWork

doWork = doWork' M.empty
    where
        doWork' m [] = pprint (sortBy (\(_,v1) (_,v2) -> compare v2 v1) $ M.toList m)
        doWork' m (ln:lns) = doWork' (M.alter f ln m) lns
        f Nothing = Just 1
        f (Just n) = Just (n+1)
        pprint [] = ""
        pprint ((p,v):ps) = p ++ " -> " ++ show v ++ "\n" ++ pprint ps

вотЪ) в принципе, можно попытаться сделать и покороче, но мне лень)

Re: Кто лучше?

СообщениеДобавлено: 07 фев 2010, 01:18
-=GIG=-
Ммм... имеется текстовик вида pass pm , необходимо привести в вид pm;pass.
Текстовик в атаче:

Re: Кто лучше?

СообщениеДобавлено: 07 фев 2010, 10:46
Zver
Хватит тут выкладывать файлы брута! Не та тема!

Re: Кто лучше?

СообщениеДобавлено: 07 фев 2010, 12:26
Кадет
-=GIG=- писал(а):Ммм... имеется текстовик вида pass pm , необходимо привести в вид pm;pass.
Текстовик в атаче:

В чём проблема-то? напиши сам :)

Re: Кто лучше?

СообщениеДобавлено: 19 июн 2010, 18:25
Zver
Что ж это тема вымерла. Выдвигайте свои идеи. Только не из раздела "сделайте за меня". :)

Re: Кто лучше?

СообщениеДобавлено: 19 июн 2010, 21:06
Кадет
Тут не так много тех, у кого логика работает, раз, два и три... С кем соревноватся-то?

Re: Кто лучше?

СообщениеДобавлено: 19 июн 2010, 21:08
Zver
Но есть же.
Оффтоп:
Всё равно скучно :(

Re: Кто лучше?

СообщениеДобавлено: 19 июн 2010, 21:19
Dimanok
скукота...пойти сервер чтоли собрать