Професионална програма
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 2 Точки

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

1