Loading...
desibaltova avatar desibaltova 0 Точки

Advanced C# - Sets and Dictionaries - Problem 10. Population Counter

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

Ще може ли да дадете идея как накрая, ако има държави/градове с еднаква стойност, да се запази подредбата им според входа в речника? Ако всички се принтират в низходящ ред, пак се разместват тези с еднаква стойност.

Благодаря предварително!

 

Тагове:
0
C# Advanced
RoYaL avatar RoYaL Trainer 6849 Точки

Ами това запазване трябва да е по дефиниция, ако използваш OrderBy(). Да не използваш някой друг метод за сортиране?

0
desibaltova avatar desibaltova 0 Точки

Използвам OrderByDescending(). Ето така изглежда накрая принтирането:

foreach (var outerPair in populationCounter.OrderByDescending(kvp=>kvp.Key))

{

int sum = 0;

foreach(var innerPair in outerPair.Value)

{

sum += innerPair.Value;

}

Console.WriteLine($"{outerPair.Key} (total population: {sum})");

foreach (var innerPair in outerPair.Value.OrderByDescending(i => i.Key))

{

Console.WriteLine($"=>{innerPair.Key}: {innerPair.Value}");

}

}

0
RoYaL avatar RoYaL Trainer 6849 Точки

Чакай, май трябва да се запозная със задачата.

Да речем, че имаш "Bourgas" => 4, "Arbanasi" => 3, "Aysiktir" => 4

То тогава "Arbanasi" трябва да е пръв заради "A"-то, но "Bourgas" трябва да е втори, защото е влязал преди Aysiktir, въпреки че Aysiktir е преди Bourgas по ключ?

0
IskrenPenev avatar IskrenPenev 177 Точки

Сортират се първо по брой жители, а в случай че 2 града имат еднакъв брой жители, градовете се нареждат по ред на вкарване.

В случая:

Aysiktir - 4

Bourgas - 4

Arbanasi - 3

0
21/05/2016 23:32:37
TonyDimitrov avatar TonyDimitrov 27 Точки

Здравейт аз ги сортирах градовете както е по условие но не разбирам защо повечето тестове ми дават Runtime Error, някъде здраво ми гърми задачата, иначе ако не гърми ми минава теста. Това е линк: http://pastebin.com/3avJYhYb с кода, а ако някой е решил задачата и иска да сподели кода с мен тук за да го погледна ще съм благодарен.

0
Rextor92 avatar Rextor92 149 Точки

Здравей,

когато използваш .Sum върху числата, съхраняваш общия резултат в променлива int, която overflow-ва на 2,147,483,647. Замести Dictionary<string, Dictionary<string, int>> с  Dictionary<string, Dictionary<string, long>>

Поздрави,

ПС: Нулев тест №2 (Грешен отговор).. интересно, с един и същи вход judge ми казва, че изкарвам Italy преди Bulgaria в отговора, което при локален тест.. очевидно не е вярно.

 Локален тест

Тест в Judge

1
01/06/2016 15:11:05
TonyDimitrov avatar TonyDimitrov 27 Точки

Благодаря това е бил проблема, даде 100 точки. 

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

ПС: Как се слага снимка тук?

0
Rextor92 avatar Rextor92 149 Точки

Показвам, че при идентичен вход, имам разлика в изхода между judge и локално тестване на програмата (локално изкарва България първа, както трябва да бъде, а в judge ми изкарва първо Италия)
Иначе, при писане на коментар имаш едно бутонче (пейзаж) - там въвеждаш url, размери, алтернативен текст и така ;)

0
ribcage avatar ribcage 1 Точки

Ще възкреся темата, понеже не е разгледан случаят, ако повече от две държави имат еднаква популация.

При следния input:

Yambol|BUL|1
London|UK|3
Rome|ITA|4
Haskovo|BUL|2
Aston|UK|1
Vratza|BUL|1

при тестване на два различни кода се получават следните резултати:

 

   

 

Спрямо условието на задачата, какъв трябва да е верният отговор? И двата кода минават 100/100 в Judge, съответно няма тест, който да покрива такъв случай.

 

0
01/06/2018 03:01:23
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Сортират се първо по брой жители, а в случай че 2 града имат еднакъв брой жители, градовете се нареждат по ред на вкарване.и явно по име е descending

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