Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 20.12.2015
Сообщений: 17

Найти максимальное количество монет, которые может взять вождь

04.02.2016, 17:44. Показов 1160. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, пожалуйста, помогите доработать код, а. Не проходит на 9 тесте (думаю, все поняли, на каком сайте), хотя, вроде, все должно работать
Условие:

Золото племени АББА

(Время: 1 сек. Память: 16 Мб)
Главный вождь племени Абба не умеет считать. В обмен на одну из его земель вождь другого племени предложил ему выбрать одну из трех куч с золотыми монетами. Но вождю племени Абба хочется получить наибольшее количество золотых монет. Помогите вождю сделать правильный выбор!

Входные данные

В первой строке входного файла INPUT.TXT записаны три натуральных числа через пробел. Каждое из чисел не превышает 10100.

Выходные данные

В выходной файл OUTPUT.TXT нужно вывести одно целое число — максимальное количество монет, которые может взять вождь.

Примеры:

1 5 7 3 7
2 987531 234 86364 987531
3 189285 283 4958439238923098349024 4958439238923098349024

Мой код:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
program Please;
Var
  a, b, c, i, sa, ra, ka, kl, rl, sl, j : integer; k, s, r, d, lo: string; g: char; f1, f2: text;       label 1;
Begin
assign(f1,'input.txt');
reset(f1);
assign(f2,'output.txt');
rewrite(f2);
s:= ''; k:= ''; r:= ''; i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin s := s + g; i:=i+1; sa:=sa+1; end; until g = ' ';
i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin r := r + g; i:=i+1; ra:=ra+1; end; until g = ' ';
i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin k := k + g; i:=i+1; ka:=ka+1; end; until eoln(f1);
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if s[i] > r [i] then begin
for j:=1 to sa do
if s[j] > k [j] then begin  lo:=s; break; end; break; end; end; end; end;
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if r[i] > s [i] then begin
for j:=1 to sa do
if r[j] > k [j] then begin  lo:=r; break; end; break; end; end; end; end;
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if k[i] > s [i] then begin
for j:=1 to sa do
if k[j] > r [j] then begin  lo:=k; break; end; break; end; end; end; end;
 
if (sa > ra) and (sa = ka) then begin
for i:=1 to sa do begin
if s[i] > k[i] then begin lo:=s; break; end else
if s[i] < k[i] then begin lo:=k; break; end; end; end;
 
if (sa > ka) and (sa = ra) then begin
for i:=1 to sa do begin
if s[i] > r[i] then begin lo:=s; break; end else
if s[i] < r[i] then begin lo:=r; break; end; end; end;
 
if (ka > sa) and (ka = ra) then begin
for i:=1 to sa do begin
if k[i] > r[i] then begin lo:=k; break; end else
if k[i] < r[i] then begin lo:=r; break; end; end; end;
 
if (ka > sa) and (ka = ra) then begin
for i:=1 to sa do begin
if k[i] > r[i] then begin lo:=k; break; end else
if k[i] < r[i] then begin lo:=r; break; end; end; end;
 
1:
Write(f2,lo);
close(f1);
close(f2);
end.

Сразу говорю, пожалуйста, не надо скидывать мне ссылки на другие темы с аналогичной задачей. Мб кто-нибудь поможет доработать ИМЕЕНО ЭТОТ код
//Знаю, что все по-рукожопски, все очень грязно, но, мб, у кого-нибудь все-таки дойдут руки доделать его)
Спасибо)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2016, 17:44
Ответы с готовыми решениями:

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

Найти максимальное количество кресел, которые можно разместить в зале
Зрительный зал в кинотеатре имеет форму трапеции с длинами сторон a, b и высотой c метров. Каждое кресло(вместе с проходом) занимает...

Найти максимальное суммарное число гамбургеров и чизбургеров, которые Гомер может съесть за обед
Обеденный перерыв Гомера Симпсона составляет T миллисекунд. Один гамбургер Гомер съедает за N миллисекунд, один чизбургер - за M. Требуется...

2
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
04.02.2016, 17:56
Цитата Сообщение от Botticelli Посмотреть сообщение
//Знаю, что все по-рукожопски, все очень грязно, но, мб, у кого-нибудь все-таки дойдут руки доделать его)
Вы сами ответили, почему никто не возьмётся за доделывание этого "чуда-юда".

Добавлено через 1 минуту
Вся доделка будет заключаться в написании нового кода, т.к. внеся сюда изменения от Вашего уже мало что останется.
0
0 / 0 / 1
Регистрация: 20.12.2015
Сообщений: 17
04.02.2016, 18:32  [ТС]
UPD

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
program Please;
Var
a, b, c, i, sa, ra, ka, kl, rl, sl, j, ps, pk, pr : integer; k, s, r, d, lo: string; g: char; f1, f2: text; label 1;
Begin
assign(f1,'input.txt');
reset(f1);
assign(f2,'output.txt');
rewrite(f2);
s:= ''; k:= ''; r:= ''; i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin s := s + g; i:=i+1; sa:=sa+1; end; until g = ' ';
i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin r := r + g; i:=i+1; ra:=ra+1; end; until g = ' ';
i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin k := k + g; i:=i+1; ka:=ka+1; end; until eoln(f1);
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if s[i] > r [i] then begin
for j:=1 to sa do
if (s[j] > k [j]) and (ps=0) then begin Write(f2,s); break; end else if (s[j] < k [j]) then ps:=ps+1; break; end; end; end; end;
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if r[i] > s [i] then begin
for j:=1 to sa do
if (r[j] > k [j]) and (pr=0) then begin Write(f2,r); break; end else if (k[j] > r [j]) then pr:=pr+1; break; end; end; end; end;
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if k[i] > s [i] then begin
for j:=1 to sa do
if (k[j] > r [j]) and (pk=0) then begin Write(f2,k); break; end else if (k[j] < r [j]) then pk:=pk+1; break; end; end; end; end;
 
if (sa > ra) and (sa = ka) then begin
for i:=1 to sa do begin
if s[i] > k[i] then begin lo:=s; break; end else
if s[i] < k[i] then begin lo:=k; break; end; end; end;
 
if (sa > ka) and (sa = ra) then begin
for i:=1 to sa do begin
if s[i] > r[i] then begin lo:=s; break; end else
if s[i] < r[i] then begin lo:=r; break; end; end; end;
 
if (ka > sa) and (ka = ra) then begin
for i:=1 to sa do begin
if k[i] > r[i] then begin lo:=k; break; end else
if k[i] < r[i] then begin lo:=r; break; end; end; end;
 
if (ka > sa) and (ka = ra) then begin
for i:=1 to sa do begin
if k[i] > r[i] then begin lo:=k; break; end else
if k[i] < r[i] then begin lo:=r; break; end; end; end;
 
1:
Write(f2,lo);
close(f1);
close(f2);
end.


Добавлено через 30 минут
Прикинь, у меня все-таки получилось через мой дер*мо-код х)
Выложу свой код, на всякий)
Решение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program Please;
Var
a, b, c, i, sa, ra, ka, kl, rl, sl, j, ps, pk, pr : integer; k, s, r, d, lo: string; g: char; f1, f2: text; label 1;
Begin
assign(f1,'input.txt');
reset(f1);
assign(f2,'output.txt');
rewrite(f2);
s:= ''; k:= ''; r:= ''; i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin s := s + g; i:=i+1; sa:=sa+1; end; until g = ' ';
i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin r := r + g; i:=i+1; ra:=ra+1; end; until g = ' ';
i:=1;
Repeat
Read(f1,g); if g <> ' ' then begin k := k + g; i:=i+1; ka:=ka+1; end; until eoln(f1);
 
if (s=k) and (s=r) then begin Write(f2,s); goto 1; end;
 
if (s=r) and (length(s) > length(k)) then begin Write(f2,s); goto 1; end;
if (s=k) and (length(s) > length(r)) then begin Write(f2,s); goto 1; end;
if (k=r) and (length(k) > length(s)) then begin Write(f2,k); goto 1; end;
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if (s[i] > r [i]) then begin
for j:=1 to sa do
if (s[j] > k [j]) and (ps=0) then begin lo:=s; break; end else if (s[j] < k [j])  then ps:=ps+1; break; end else if (s[i] < r [i]) then ps:=ps+1; end; end; end;
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if r[i] > s [i] then begin
for j:=1 to sa do
if (r[j] > k [j]) and (pr=0) then begin lo:=r; break; end else if (k[j] > r [j]) then pr:=pr+1; break; end else if (r[i] < s [i]) then pr:=pr+1; end; end; end;
 
if (sa > ra) and (sa > ka) then begin lo:=s; goto 1; end else
if (ra > sa) and (ra > ka) then begin lo:=r; goto 1; end else
if (ka > ra) and (ka > sa) then begin lo:=k; goto 1; end else begin
 
if (sa = ra) and (ra = ka) then begin
for i:=1 to ra do begin
if k[i] > s [i] then begin
for j:=1 to sa do
if (k[j] > r [j]) and (pk=0) then begin lo:=k; break; end else if (k[j] < r [j]) then pk:=pk+1; break; end else if (k[i] < s [i]) then pk:=pk+1; end; end; end;
 
if (sa > ra) and (sa = ka) then begin
for i:=1 to sa do begin
if s[i] > k[i] then begin lo:=s; break; end else
if s[i] < k[i] then begin lo:=k; break; end; end; end;
 
if (sa > ka) and (sa = ra) then begin
for i:=1 to sa do begin
if s[i] > r[i] then begin lo:=s; break; end else
if s[i] < r[i] then begin lo:=r; break; end; end; end;
 
if (ka > sa) and (ka = ra) then begin
for i:=1 to sa do begin
if k[i] > r[i] then begin lo:=k; break; end else
if k[i] < r[i] then begin lo:=r; break; end; end; end;
 
if (ka > sa) and (ka = ra) then begin
for i:=1 to sa do begin
if k[i] > r[i] then begin lo:=k; break; end else
if k[i] < r[i] then begin lo:=r; break; end; end; end;
 
1:
Write(f2,lo);
close(f1);
close(f2);
end.

Мб кому-нибудь будет проще, как я решал, хотя вряд ли)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2016, 18:32
Помогаю со студенческими работами здесь

Найти максимальное количество цифр, которые идут подряд
дан текст, найти максимальное (найбольшее) количество цифр, которые идут подряд

Найти максимальное количество заявок, которые можно удолетворить
Есть n заявок на проведение занятий в 1й аудитории. два различных занятия не могут пересекаться по времени. каждая заявка содержит время...

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

Найти максимальное количество футболок, которые можно обменять на крышечки
Гриша очень любит газировку PupsiCola. Однажды он узнал, что, собрав несколько крышек со звездочками, можно получить футболку. Гриша нашел...

Выведите минимальное количество монет, которые нужно перевернуть
На столе лежат n монеток. Некоторые из них лежат вверх решкой, а некоторые – гербом. Определите минимальное число монеток, которые нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru