Софтуерно Инженерство
Loading...
+ Нов въпрос
AnarckYY avatar AnarckYY 1 Точки

Programming Basics - Simple Loops - Equal Pairs

Здравейте колеги,

Имам следния казус по - задача 12, от домашното за "Simple Loops".

Условието на задачата е следното:

Еднакви двойки

Дадени са 2*n-на брой числа. Първото и второто формират двойка, третото и четвъртото също и т.н. Всяка двойка има стойност – сумата от съставящите я числа. Напишете програма, която проверява дали всички двойки имат еднаква стойност или печата максималната разлика между две последователни двойки. Ако всички двойки имат еднаква стойност, отпечатайте "Yes, value={Value}" + стойността. В противен случай отпечатайте "No, maxdiff={Difference}" + максималната разлика. 

Тествайте решението си в judge системата: https://judge.softuni.bg/Contests/Practice/Index/154#11.

Подсказки:

Прочитайте входните числа по двойки. За всяка двойка пресмятайте сумата.

Докато четете входните двойки, за всяка двойка без първата пресмятайте разликата с предходната. За целта пазете в отделна променлива сумата на предходната двойка.

Намерете най-голямата разлика между две двойки. Ако е 0, печатайте “Yes” иначе “No” + разликата.

Решението , което намерих във форума, е следното(понеже сам не успях да се справя) - https://pastebin.com/cePkyXRD - дава 100/100 в judge.

Проблема е там, че при примерен  вход:

  1. 3, 2, 1, 3, 0, 4, 7 - по така написания код програмата ще отпечата , че сумата от 3-те двойки не е еднаква и най-голямата разлика между две съседни двойки е 8, което е ОК спрямо условието на задачата.
  2.       Обръщаме местата на първата двойка (2,1) и третата (4,7) - 3, 4, 7, 3, 0, 2, 1 - сега вече програмата принтира , че имаме съвпадение и сумата от двойките е равна на 3 въпреки, че то е само в сумата на 2ра и 3та двойка, което според условието на задачата според мен не е ОК,защото е ясно упоменато, че сумата на всички двойки трябва да съвпада.

Моля, за помощ, judge ли не е направен да тества коректно дали е спазено условието или самото условие не е написано ясно.

Срещал съм и други такива двусмислени задачи, които за един начинаещ, като мен се са доста голяма главоблъсканица и разход на време://

 

1
Основи на програмирането 26/06/2017 23:00:47
Lyubohd avatar Lyubohd 101 Точки
Best Answer

https://pastebin.com/E6im6bVe

Разписах кода и на C#, не се получава споменатата от теб грешка във вторият случай.

Упсех! 

0
AnarckYY avatar AnarckYY 1 Точки

Супер, благодаря много!

0
Lyubohd avatar Lyubohd 101 Точки

Здравей,
Явно judge не прави точно тази проверка и затова програмата ти минава, моето решение е на Java и при въвеждането на 3, 2, 1, 3, 0, 4, 7 и 3, 4, 7, 3, 0, 2, 1 дава абсолютно еднакъв резултат, сумата от 3-те двойки не е еднаква и най-голямата разлика между две съседни двойки е 8. Ще пренапиша програмата на C#, но предполагам че няма да има разлика. Прилагам ти линк към решението на Java, ще можеш да го прочетеш, разликите са минимални спряпо C#. https://pastebin.com/yMn3vUV1

Поздрави!

0
kolioi avatar kolioi 396 Точки

+1

Намерил си две грешки наведнъж smiley Едната в Джаджа, другата в решението на колегата (+1 и за него затова, че е успял да излъже Джаджа laugh) Ето ти едно простичко решение и от мен https://pastebin.com/Z4rX9GD4

0