Автор | Сообщение |
|
Отправлено: 27.04.20 15:34. Заголовок: задача № 27 из стаграда апрель 2020 1-ый вариант
Добрый день! Написал программу на 4 балла, но не работает. Подскажите, пожалуйста, где ошибка или может быть у кого нибудь есть код на паскале или на питоне на 4 балла, без вложенных циклов? https://yadi.sk/i/itBA1KIIsVosoQ. Мой код здесь, но тест не проходит- выводит 0, а должна 3 var m, b: array[0..59] of integer; n, count, i, p, x: integer; begin for i := 0 to 59 do begin m := 0; b := 0 end; count := 0; readln(n); for i := 1 to n do begin readln(x); p := x mod 60; if x <= 40 then m[p] += 1 else b[p] += 1 end; count += m[0] * b[0] + (b[0] * (b[0] - 1)) div 2; count += m[30] * b[30] + (b[30] * (b[30] - 1)) div 2; for i := 1 to 29 do count += m * b[60 - i] + b * b[60 - i] + m[60 - i] * b; writeln(count); end.
|
|
|
Ответов - 7
[только новые]
|
|
|
Отправлено: 27.04.20 19:17. Заголовок: 1) Неверное обнулени..
1) Неверное обнуление массива b и m. for i:=0 to 59 do begin b[ i ]:=0; m[ i ]:=0; end; В остальном код верный. PS. Пример входных данных: 6 30 30 150 20 40 100 Пример выходных данных для приведённого выше примера входных данных: 3
|
|
|
|
Отправлено: 28.04.20 16:12. Заголовок: cabanov.alexey Алекс..
cabanov.alexey Алексей, все равно ноль выводит, даже когда исправил обнуление массива. Я пробовал в разных версиях паскаля и все равно ноль. Скриншотом подтверждаю. Подскажите, пожалуйста, где ошибка? https://yadi.sk/i/i3DJh1V4C05mgw
|
|
|
|
Отправлено: 28.04.20 16:02. Заголовок: Спасибо большое )!..
Спасибо большое )!
|
|
|
|
Отправлено: 28.04.20 18:51. Заголовок: Это входные данные д..
Это входные данные для другого варианта. Я правильные скинул в ответе выше ☝ Под ваши входные данные код такой var m, b: array[0..79] of integer; n, count, i, p, x: integer; begin for i := 0 to 79 do begin m[ i ] := 0; b[ i ] := 0 end; count := 0; readln(n); for i := 1 to n do begin readln(x); p := x mod 80; if x <= 50 then m[p] += 1 else b[p] += 1 end; count += m[0] * b[0] + (b[0] * (b[0] - 1)) div 2; count += m[40] * b[40] + (b[40] * (b[40] - 1)) div 2; for i := 1 to 39 do count += m[ i ] * b[80 - i] + b[ i ] * b[80 - i] + m[80 - i] * b[ i ]; writeln(count); end.
|
|
|
|
Отправлено: 05.05.20 17:35. Заголовок: cabanov.alexey Даже..
|
|
|
|
Отправлено: 05.05.20 17:51. Заголовок: Да Господи! https://..
Есть ошибки по коду (числа для 60, а не 80). Сверьтесь ещё раз. Вот оригинальная задача Вот код для неё
|
|
|
|
Отправлено: 06.05.20 09:36. Заголовок: cabanov.alexey Отлич..
cabanov.alexey Отлично, теперь все работает
|
|
|
|