Loading...
Losko avatar Losko 69 Точки

[Exercises: Arrays and Lists]16.Bomb Numbers

Здравейте.
Видях че има вече тема по тази задача, но никой не беше одговорил на колегата на въпроса защо гърми на Тест 2 и Тест 5 в judge.
Моето решение е различно от всичко други които видях до сега но с явно същия проблем.
Ще бъда благодарен ако някой ми посочи примерен вход при който МОЯ код не работи коректно, и какво точно не му харесва на Judge.

Ето го и кода : http://pastebin.com/0qTnbhTN

Тагове:
0
Programming Fundamentals
kristina111 avatar kristina111 59 Точки

При следния примерен вход:

1 2 2 4 2 2 2 9 1 1 1

4 4

твоето решение не извежда правилен изход. Изходът трябва да е 3, а твоето решение извежда 18, защото след грешката, която "кечваш", не "бомбардираш" числата отдясно на 4-ката.

0
bMedarski avatar bMedarski 148 Точки

Проблемът ти е в метода RemoveAt()

При първото триене на число, целият лист се променя.

Смисъл, ако имаш лист от числата 1, 2, 3, 4, 5

и напишеш RemoveAt(2), RemoveAt(3) -

няма да ти изтрие три и четири, а три и петр защото в моента в който изтриеш на позиция две тройката, четворката става вече на 3та позиция а 5цата на четвърта.

0
alabama415 avatar alabama415 101 Точки

 Намерих едно доста елегантно решение.... аз изписах 100 реда код, а тука на упражнения са го решили с не по-вече от 30 реда: http://pastebin.com/ESCCWmqu

0
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Ето още едно кратко решение:

 

List<int> nums = Console.ReadLine().Split().Select(int.Parse).ToList();
int[] bomb = Console.ReadLine().Split().Select(int.Parse).ToArray();
int specialN = bomb[0]; int power = bomb[1]; 
while (nums.Contains(specialN))

  int indexSpecialN = nums.IndexOf(specialN);
  for (int num = indexSpecialN-power; num <= indexSpecialN+power; num++) if (num>=0 && num<nums.Count) nums[num] = 0; 
}
Console.WriteLine(nums.Sum());

 

0
DimitarPopov avatar DimitarPopov 1 Точки

Здравейте,

А на мен някой би ли могъл да ми обясни защо задачата ми гърми на тест 2 и 5, пробвах всякакви комбинации и винаги ми излиза правилен отговор. https://pastebin.com/ujGfHudS

Благодаря!

0
ZhPetkov avatar ZhPetkov 45 Точки

Здравейте,

При мен минава 80/100 и този тест 5 е неуспешен.

Ето го моето решение: https://pastebin.com/APsyZUeK

https://judge.softuni.bg/Contests/Practice/Index/398#6

0
02/05/2018 01:18:50
VasAtanasov avatar VasAtanasov 48 Точки

Триеш от колекцията, която използваш в цикъла. Като изтриеш елемент се променя тяхната наредба по индекси както и размера на колекцият и някъде сиг излизаш или индексите ти се променят и дава грешен резултат. Пробвай в обратен ред да премахваш т.е. от зад на пред.
Ето едно решение на Java, но мисля че се разбира и може да се пренесе на C# - https://pastebin.com/xPke3uS7

0
01/05/2018 23:42:24
radina.ivanova avatar radina.ivanova 1 Точки

Здравей, така бих го написала аз:

https://pastebin.com/uy5pG98p

промених ппосоката: (Detonations are performed from left to right )

и не махам елементите, а  ги нулирам, зада не се развали реда.

В твоят 2ри цикъл си сложил вместо j --> bomb[1] .

Дава 100/100, но разбира се гурми на втори нулев: 

1 4 4 2 8 9 1
9 3

Направи един дебъг с него..мисля, че е при try в първия цикъл :)

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