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
Programming Basics 26/06/2017 23:00:47
Lyubohd avatar Lyubohd 137 Точки
Best Answer

https://pastebin.com/E6im6bVe

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

Упсех! 

0
AnarckYY avatar AnarckYY 1 Точки

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

0
Lyubohd avatar Lyubohd 137 Точки

Здравей,
Явно 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 641 Точки

+1

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

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