Problem 4 Snowwhite
Здравейте, колеги
Имам проблем със сортировката в тази задача. Написах я с вложени речници, написах я с обект, така и не можах да я излъжа да ми изпише сортирани резултатите. Моля някой да помогне с изписването на данните в правилен ред. :-)
Условие:
https://judge.softuni.bg/Contests/Practice/DownloadResource/2726
Моят код с речник:
Моят код с обект:
Благодаря, колега :-)
Вчера за 15 минути събрах данните, после 3 часа въртях, суках не можах да ги изпиша правилно. изпуших и зарязах всичко. :-)
Днес разгледах решението. Доста странно ми изглежда. Пълним джуждетата в листа, но никъде в този лист не ъпдейтваме Physics на джуджето /ако дойде със същото име и цвят/, ъпдейта е само в Речника. После от този лист изписваме резултати. хмм :-)
В сортировката има добри идеи и ще се опитам да я използвам в моето решение. Още веднъж благодаря. :-)
Ъпдейта на phisics става в тия два реда :
41. var tempDwarf = alldwarfs[colour].FirstOrDefault(x => x.Name == name);
42. tempDwarf.Physics = Math.Max(tempDwarf.Physics, physics);
Това ми намира дублираното джудже и го запазвам в променливата tempDwarf, която е от тип Dwarf.Но понеже, обектите са от референтен тип, реално tempDwarf сочи към същото джудже, което е в списъка с джуджета и променяйки нещо по tempDwarf аз променям и оригиналното джудже в списъка. И във втория ред просто сравнявам неговата физика с текущата и му запазвам по-голямата.
Схванах. ъпдейтват се по референция. :-) Благодаря. :-) Аз все още се опитвам само с един лист да го излъжа, но сортира ли по цвят и вече реда на попълване /който е трети сорт/ се прецаква.