Loading...

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

Nikodon avatar Nikodon 3 Точки

7. Truck Tour - C# Advance exercises

Привет, колеги, може ли малко помощ по кода. Дава ми резултата, по условие, но в джъдж ми дава 0/100.

Ако някой може да помогне ще съм благодарен:

Ето условието и кода:

Problem 7.  Truck Tour

https://pastebin.com/1n9qADm5?fbclid=IwAR3IVDzepshFl5-ywvcnw-iidY8Vl00go0mfiZYO4AmWrC8i8wZRPYV5a-8

Suppose there is a circle. There are N petrol pumps on that circle. Petrol pumps are numbered 0 to (N−1) (both inclusive). You have two pieces of information corresponding to each of the petrol pump: (1) the amount of petrol that particular petrol pump will give, and (2) the distance from that petrol pump to the next petrol pump.

Initially, you have a tank of infinite capacity carrying no petrol. You can start the tour at any of the petrol pumps. Calculate the first point from where the truck will be able to complete the circle. Consider that the truck will stop at each of the petrol pumps. The truck will move one kilometer for each liter of the petrol.

Input

  • The first line will contain the value of N
  • The next N lines will contain a pair of integers each, i.e. the amount of petrol that petrol pump will give and the distance between that petrol pump and the next petrol pump

Output

  • An integer which will be the smallest index of the petrol pump from which we can start the tour

Constraints

  • 1 ≤ N ≤ 1000001
  • 1 ≤ Amount of petrol, Distance ≤ 1000000000

Examples

Input

Output

3

1 5

10 3

3 4

1

Тагове:
0
C# Advanced
knoteva avatar knoteva 1081 Точки
Best Answer

Здравей,

"Console.WriteLine(counter);" трябва да е извън while цикъла.

0
Nikodon avatar Nikodon 3 Точки

Много ти благодаря :)

1
Elena123456 avatar Elena123456 235 Точки

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

Имам решение на задачата, което е 100/100- https://pastebin.com/BXMje8J3 , но е с цели три опашки. Опитвам се да я  пренапиша, като използвам само една опашка, в която да държа три int числа: petrol, distance и index. Ще използвам същата логика, като в предходното ми решение. Затруднявам се със синтаксиса, тъй като още не сме учили опашки от масиви или от листове.

Ето до къде стигнах и не успявам да продължа по-нататъка:

            int numbersOfPumps = int.Parse(Console.ReadLine());          
            var queuePetrolDistanceIndexx = new Queue<List<int>>();
            for (int i = 0; i < numbersOfPumps; i++)
            {
                int[] input = Console.ReadLine().Split().Select(int.Parse).ToArray();
                int petrolInThePump = input[0];
                int distanceBetwenTheNext = input[1];
                int indexx = i;
                queuePetrolDistanceIndexx.Enqueue(new List<int>());

Опашките нямат нещо подобно на InsertRange(), като при листовете, нито мога да достъпя листа в опашката, както при речника от листове можех. Моля за помощ, как да кача и трите числа заедно в една опашка, вместо да използвам три отделни опашки.

 

0
13/12/2020 17:07:09
JulianJulianov avatar JulianJulianov 9 Точки

Здравей, Elena123456. Опашката е достатъчно  да събира в себе си  масив от стрингове var queue = new Queue<string[]>();, след това пъхаш три сплитнати елемента от конзолата var infoForPetrol = Console.ReadLine().Split(); напр. 5  2  7 и за да имаш достъп до тези три елемента използваш

foreach (var item in queue){ 

if(int.Parse(item[0]) > int.Parse(item[1]))

var neededIndexIs = item[2];}

Ето и линк към моето 80/100 решение:  https://pastebin.com/Rshmb9F8  , което е с една опашка и три елемента вътре:). Надявам се и на мен някой да помогне за останалите 20/100. Упс,...видях си грешката.

Беше if (int.Parse(item[0]) >= int.Parse(item[1])) , а сега е 

if (int.Parse(item[0]) >= int.Parse(item[1]) || sumPetrol > sumKmToPomp)

и вече е 100/100.

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