Loading...
Panayotov91 avatar Panayotov91 7 Точки

Endurance Rally Programming Fundamentals Help

Здравейте,

Моля помогнете ми със задача 03.Endurance Rally - https://judge.softuni.bg/Contests/Compete/Index/453#2

дава ми рънтайм еррор на 8-ми тест и не мога да разбера защо.

Ето кода:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;


class Startup
{
    static void Main()
    {
        CultureInfo invC = CultureInfo.InvariantCulture;
        var isBreaked = false;
        var drivers = new Dictionary<string, double>();
        var getDrivers = Regex.Split(Console.ReadLine(), @"\s+").ToList();
        var zones = Regex.Split(Console.ReadLine(), @"\s+").Select(double.Parse).ToArray();
        var checkpoints = new List<decimal>();
        string input = Console.ReadLine();
        if (!String.IsNullOrEmpty(input))
        {
            checkpoints = Regex.Split(input, @"\s+").Select(decimal.Parse).ToList();
        }
        foreach (var driver in getDrivers)
        {
            drivers.Add(driver, (double)((int)driver[0]));
        }

        foreach (var driverr in getDrivers)
        {
            isBreaked = false;
            for (int i = 0; i < zones.Length; i++)
            {
                if (checkpoints.Contains(i))
                {
                    drivers[driverr] += zones[i];
                }
                else
                {
                    drivers[driverr] -= zones[i];
                }
                if(drivers[driverr] <= 0)
                {
                    Console.WriteLine($"{driverr} - reached {i}");
                    isBreaked = true;
                    break;
                }
            }
            if(!isBreaked == true)
            {
                Console.WriteLine($"{driverr} - fuel left {string.Format("{0:0.00}", drivers[driverr])}");
            }
        }
    }
}

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

Тагове:
0
Programming Fundamentals
icowwww avatar icowwww 2791 Точки
Best Answer

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

Когато използваш Add, при две еднакви имена програмата ти гърми с ето това: An item with the same key has already been added.

Речника не е нужен. Може и с фор цикъл да въртиш листа drivers( или да е част от foreach). Все пак ето какво трябва да промениш за да тръгне на 100/100:

        foreach (var driver in getDrivers)
        {
                drivers[driver]= (double)((int)driver[0]);     // вместо Add, не знам защо първо

                                                                                    // към int после към дабъл, а не направо дабъл

                                                                                   //ама тва ти си го решаваш
        }

Това съм писал преди време, няма речници и всичко е в цикъла https://pastebin.com/2vHqG4tV

0
05/07/2017 02:15:41
Panayotov91 avatar Panayotov91 7 Точки

Благодаря ти много :)

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