![]() |
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 -------------------- |
![]() ![]() |
trminator |
![]()
Сообщение
#2
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот. За _эту_ сортировку не пинайте :p2:
Код program putinka; const maxn = 10000 + 1; var n, i, total, ngol : integer; want : array[1..maxn] of record c : real; n : integer end; get : array[1..maxn] of integer; procedure swap1(var a, b : real); var t : real; begin t := a; a := b; b := t end; procedure swap2(var a, b : integer); var t : integer; begin t := a; a := b; b := t end; { сортирует want } procedure sort; var i, j, t : integer; begin for i := 1 to n do for j := i to n do if want[i].c < want[j].c then begin swap1(want[i].c, want[j].c); swap2(want[i].n, want[j].n) end; end; begin assign(input,'input.txt'); assign(output,'output.txt'); reset(input); rewrite(output); readLn(n); total := 100; ngol := 0; for i := 1 to n do begin read(want[i].c); inc(ngol, trunc(want[i].c)); want[i].n := i; end; for i := 1 to n do begin want[i].c := want[i].c / ngol * 100; get[i] := trunc(want[i].c); want[i].c := want[i].c - get[i]; dec(total, get[i]) end; sort; i := 1; while total > 0 do begin inc(get[want[i].n]); dec(total); inc(i); if i > n then i := 1; end; for i := 1 to n do write(get[i],' '); end. Как минимум пару тестов пройти должно... правда, по времени не пройдет наверное... если не пройдет -- завтра нормальную sort поставлю, пирамидку, например -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 7:58 |