![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
virt |
![]() ![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача A. Все на выборы!
Ограничение времени: 1 сек. Входной файл: input.txt Выходной файл output.txt Совсем недавно в стране Электорляндии проходили выборы президента, и произошла удивительная вещь: все избиратели пришли на выборы, и не один не проголосовал против всех! Избирательная комиссия пригласила вас для помощи при предварительном подсчете голосов. Известно, что на выборах было N кандидатов. Требуется написать программу, подсчитывающую, сколько процентов голосов получил каждый кандидат; причем числа, которые выдает ваша программа, должны удовлетворять следующим условиям: 1. Общая сумма всех чисел должна быть равна 100% 2. Каждое число должно быть целым и равняться реальному результату, округленному либо в большую, либо в меньшую сторону. Формат входного файла В первой строке записано натуральное число N (1<=N<=10000) – количество кандидатов. Вторая строка содержит последовательность целых чисел A1, A2,..., AN; Ai – количество голосов, отданное i-му кандидату (0<=Ai<=10000). Числа разделены одним или несколькими пробелами. Формат выходного файла В выходной файл запишите последовательность чисел, описанную в условии. Числа следует разделять пробелами. Если решения не существует, выведите “No solution”. Если решений несколько, выведите любое из них. Примеры Код Входной файл Выходной файл |-----------------------------------------| |2 | | |10 10 | 50 50 | |-----------------------------------------| |3 | | |1 1 198 | 0 1 99 | |-----------------------------------------| решайте кто ,хочет. решения можете прислать сюды : dan_net@mail.ru у меня есть тесты к этой задаче ,посмотрим кто на сколько решит . ЗЫ : вам надоело сортировать массивы по убыванию ,тогда эта задача для вас ![]() А правила раздела для кого? результаты : максимум -- 15 баллов Код -------------------------------------- |BlackShadow | 15 баллов | |trminator | 9 баллов | |Oleg_Z | 2 балла | |Денис | 2 балла | -------------------------------------- Сообщение отредактировано: virt - 30.05.2004 9:55 -------------------- |
![]() ![]() |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Я за 20 минут сделал:
Код Program VIBORI; Var FI,FO : TEXT; {входной и выходной файлы соответсвенно} KK : Word; {число кандидатов} KG,summ : longint; {10000*10000 = 10^8 - longint} KPZK : WORD; {Количество Проголосовавших За данного Кандидата} begin Assign(FI,'input.txt'); Assign(FO,'output.txt'); Reset(FI); Rewrite(FO); Readln(FI,KK); {определим сумму всех голосов} While not EOF(FI) do begin read(FI,KG); INC(KPZK); INC(summ,KG) end; {количестов определили} IF KK<>KPZK then begin writeln(FO,'No solution'); CLOSE(FO); CLOSE(FI); HALT end; close(FI); reset(FI); readln(FI,KK); While not EOF(FI) do begin read(FI,KG); write(FO,' ');write(FO,TRUNC((KG*100)/SUMM)) end; close(FO); close(FI); end. Вот и все. я только не понимаю, зачем ограничение повремени? Ведь это напрямую от машины зависит! + можно прогу оптимизировать, переписать часть кода на асм. Ну если что не то, сразу не ругайте :) И не надо будет смеятся, если что не то. Может что и не учел... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 9:53 |