Loading...
daninemski avatar daninemski 2 Точки

5.1 Loops 12.Equal Pairs

n = int(input())                    # Брой числа

dvoika0 = 0     # сбора от числа на ред 0 и 1
dvoika1 = 0     # сбора от числа на редове 2 и 3
dvoika2 = 0     # сбора от чисал на редове 4 и 5
maxnum = -10000000000
minum = 1000000000

for i in range(0, (2 * n)):
    num = int(input())
    if 0 <= i <= 1:
        dvoika0 = num + dvoika0
    if 1 < i <= 3:
        dvoika1 = num + dvoika1
        if dvoika0 > maxnum:
            maxnum = dvoika0
        elif dvoika1 > maxnum:
            maxnum = dvoika1
        if dvoika0 < minum:
            minum = dvoika0
        elif dvoika1 < minum:
            minum = dvoika1
    if 3 < i <= 5:
        dvoika2 = num + dvoika2
        if dvoika0 > maxnum:
            maxnum = dvoika0
        elif dvoika1 >= maxnum:
            maxnum = dvoika1
        elif dvoika2 >= maxnum:
            maxnum = dvoika2
        if dvoika0 < minum:
            minum = dvoika0
        elif dvoika1 < minum:
            minum = dvoika1
        elif dvoika2 < minum:
            minum = dvoika2




import math
maxdiff = abs(dvoika0 - dvoika1)

if n == 1:
    print(f'Yes, value={dvoika0}')

if n == 2:
    if dvoika0 == dvoika1:
        print(f'Yes, value={dvoika0}')
    if dvoika0 != dvoika1:
        print(f'No, maxdiff={maxdiff}')

if n == 3:
    if dvoika0 == dvoika1 == dvoika2:
        print(f'Yes, value={dvoika0}')
    else:
        print(f'No, maxdiff={maxdiff}')

Здравейте, judje ми дава 62/100 a всички тестове в усовието на задачата са изпълнение, 

в джъдж не ми показва къде точно греша и незнам какво да коригирам.

 

Тагове:
0
Programming Basics
mark79 avatar mark79 639 Точки
Best Answer

Здравей,

ето едно примерно решение на задачата:

n = int(input())

previous_pair_sum = 0
pair_difference = 0
max_difference = 0
for i in range(n):
    pair_sum = int(input()) + int(input())
    if i == 0:
        previous_pair_sum = pair_sum
    if pair_sum != previous_pair_sum:
        pair_difference = abs(pair_sum - previous_pair_sum)
        previous_pair_sum = pair_sum
    if pair_difference > max_difference:
        max_difference = pair_difference

if max_difference == 0:
    print(f"Yes, value={pair_sum}")
else:
    print(f"No, maxdiff={max_difference}")

Поздрави :)

0
09/09/2019 20:17:44
daninemski avatar daninemski 2 Точки

Благодаря на всички. Справих се. Определено не бях разтълкувал задачата правилно.

 

Лека и спорна

0
Vankata83 avatar Vankata83 72 Точки

Може ли да дадеш условието на задачата

0
daninemski avatar daninemski 2 Точки

Задача: еднакви двойки Дадени са 2 * n числа. Първото и второто формират двойка, третото и четвъртото също и т.н. Всяка двойка има стойност – сумата от съставящите я числа. Напишете програма, която проверява дали всички двойки имат еднаква стойност. В случай, че е еднаква отпечатайте "Yes, value=…" + стойността, в противен случай отпечатайте максималната разлика между две последователни двойки в следния формат - "No, maxdiff=…" + максималната разлика. Входът се състои от число n, следвано от 2*n цели числа, всички по едно на ред.
Примерен вход и изход
Вход Изход Коментар  Вход Изход Коментар
3 1 2 0 3 4 -1
Yes, value=3
стойности = {3, 3, 3} еднакви стойности
 
   2    1    2    2    2
No, maxdiff=1
стойности = {3, 4} разлики = {1} макс. разлика = 1
 
Вход Изход Коментар  Вход Изход Коментар
   2    -1    2    0   -1
No, maxdiff=2
стойности = {1, -1} разлики = {2} макс. разлика = 2
 
  1   5   5
Yes, value=10
стойности = {10} една стойност → еднакви стойности

0
Vankata83 avatar Vankata83 72 Точки

Първо сигурен ли си, че двойките числа са само до три максимум?

Прегледай това https://softuni.bg/forum/14314/simple-loops-12-equal-pairs

Да, тук решенията са на други езици, но виж дали задачата е абсолютно същата.

Важна е логиката.

По принцип във форума има решени повечето задачи.

0
spasimira25 avatar spasimira25 25 Точки

Погрешно си схванал задачата. Не са 3 двойки, а n- на брой двойки. Т.е цикъла ти не е 2*n, а "n"
В цикъла въвеждаш две числа и ги сумираш. После тази сума я записваш в някаква временна променлива, и я сравняваш със сумата от следващата итерация. Ако имат разлика, разликата записваш в някаква нова променлива, като проверяваш дали е по-малка или по-голяма. И така...

Накрая правиш иф проверка за това дали тази разлика е нула( Yes, value=… ) и допечатваш сумата на последната двойка числа, ако не - печаташ най-голямата разлика между две съседни двойки. Т.е не те интересува разликата между 1-ва и 8-ма двайка.

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.