Loading...

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

ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

Truck Tour from Stacks and Queues - Exercise 20/100

Колеги, реших да започна да пререшавам по-трудните задачи от упражненията от CSharpAdvanced. Нещо зацепих на тази. Знам, че има видео с решението и, но честно казано не знам защо не минава моят код. 20/100 e, като втория тест е Time limit, а другите три Incorrect answer. 

 

https://pastebin.com/j36YXkQJ

https://softuni.bg/downloads/svn/csharp-advanced/May-2017/01.%20CSharp-Advanced-Stacks-And-Queues/01.%20CSharp-Advanced-Stacks-And-Queues-Exercises.docx

 

Благодаря!

Тагове:
0
C# Advanced
Jaihertz avatar Jaihertz 4 Точки

Реално от условието на тази задача не става ясно, дали пълен кръг трябва да се завърти. Аз бях разбрал че е нужна опашка, тъй като тръгването само от помпа на определена позиция би осигурило успешното пълно завършване с финиширане на нея. Това предполага прехвърляне на проверените помпи в края на опашката, тъй като по-късно пак ще участват за пълния кръг. В крайна сметка задачата се оказва линейна: ходиш си по масивче и гледаш от коя точка ще се снабдяваш с гориво, да добуташ до края му. Принтираш точката и това е. След като нанесох корекциите expectation VS reality, пускам тука и моят код, за който си бие главата с условието :)

 

using System;
using System.Linq;

namespace EX07_Truck_Tour
{
    class CalculateCircle
    {
        static void Main()
        {
            int N = int.Parse(Console.ReadLine());

            int[] pumps = new int[N];

            for (int i = 0; i < N; i++)
            {
                int[] integers = Console.ReadLine().Split().Select(int.Parse).ToArray();
                pumps[i] = integers[0] - integers[1];
            }

            int current = 0;
            int position = 0;

            for (int i = 0; i < N; i++)
            {
                current += pumps[i];

                if (current < 0)
                {
                    current = 0;
                    position = i + 1;
                }
            }
            Console.WriteLine(position);
        }
    }
}

 

ПС: Ето Ви и още едно чекче, за да си го ползвате в дебъгването. Очаква се да принтира 4 :)

 

6
1 5
10 3
3 4
2 9
10 2
5 3

 

1
18/05/2019 14:39:54
Ina_K avatar Ina_K 3 Точки

Златен си, човече! С твоето чекче си намерих пропуск и от 40/100 стигнах 100/100.

1
v.angelov92 avatar v.angelov92 8 Точки

Благодаря за подсказката. От описанието се разбира точно както сте го описали в началото. Доста глупаво условие са дали. Поздрави.

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