Loading...
i.petk0v avatar i.petk0v 56 Точки

Sino The Walker

Здравейте, имам проблем с решаването на тази задача. В judge ми дава 80/100. Може ли някой да разгледа решението ми и да ме посъветва как да подобря решението си, за да ми даде 100/100. Искам да разбера къде пропускам.

Линк към задачата в Judge, където има и Условие на задачата:

https://judge.softuni.bg/Contests/Practice/Index/376#0

Линк към моето решение:

https://dotnetfiddle.net/INi5e0

 

 

0
Programming Fundamentals 20/01/2017 18:46:21
ppbaev avatar ppbaev 157 Точки

int step = int.Parse(Console.ReadLine()) % 86400;

int seconds = int.Parse(Console.ReadLine()) % 86400;

86400 секунди = 1 ден

махаме цели дни, ако някой се прави на интересен да ни ги подава като вход

4
20/01/2017 18:22:11
Boris.stavrev92 avatar Boris.stavrev92 42 Точки

// 100 / 100 - Благодаря ти много :Д   

DateTime timeOfLeavingSoftUni = DateTime.Parse(Console.ReadLine());

            //int step = int.Parse(Console.ReadLine()) % 86400;
            //int seconds = int.Parse(Console.ReadLine()) % 86400;
            //86400 секунди = 1 ден
            //махаме цели дни, ако някой се прави на интересен да ни ги подава като вход

            int stepsTaken = int.Parse(Console.ReadLine()) % 86400;
            int stepsPerSec = int.Parse(Console.ReadLine()) % 86400;

            int timeInTravel = stepsTaken * stepsPerSec;
            DateTime result = timeOfLeavingSoftUni.AddSeconds(timeInTravel);

            //Output
            Console.WriteLine("Time Arrival: {0:HH:mm:ss}", result);

0
fbinnzhivko avatar fbinnzhivko 1586 Точки

Някои колега да сподели решение.  

http://pastebin.com/gcLYdQYH
Решението ме дава 60/100.
Къде греша може ли малко помощ.

0
StefanTep avatar StefanTep 4 Точки

Тия ifs ги прави на switch case по добра практика е :)

using System;

class Program
{
    static void Main()
    {
        DateTime leaves = DateTime.Parse(Console.ReadLine());      

        double steps = double.Parse(Console.ReadLine())%86400;//steps in seconds
        //махаме цели дни, ако някой се прави на интересен да ни ги подава като вход
        double timeInSeconds = double.Parse(Console.ReadLine())%86400;//time in seconds for each step

        double allTime = steps * timeInSeconds/3600;//in seconds
        Console.WriteLine("Time Arrival: " + (leaves.AddHours(allTime)).TimeOfDay);
    }
}

0
03/02/2017 16:45:33
WifiAvivi avatar WifiAvivi 151 Точки

Метода по който решаваш не може да се покрие с ulong, защото по условие могат да ти въведат 2147483647 стъпки и всяка стъпка да трае по 2147483647 секунди , което е 2147483647 * 2147483647 = 4611686014132420609 секунди (това е BigInteger*) . Решението 100/100 ти е това: http://pastebin.com/raw/7LsgN1jY

Водеща нула много лесно се поставя като кажеш {variable:00}

 

____________________________________________________________

* BigInteger изисква да се добави reference -> System.Numerics.

 

0
21/02/2017 17:20:48
krasimarinov10 avatar krasimarinov10 1 Точки

Или това за 100/100

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;

namespace ExamPrep3
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Globalization.CultureInfo provider = CultureInfo.InvariantCulture;
            DateTime starttime=  DateTime.ParseExact(Console.ReadLine(), "HH:mm:ss", provider);
            double steps = double.Parse(Console.ReadLine())% 86400;
            double secsonsperstep = double.Parse(Console.ReadLine())%86400;
            double res = steps * secsonsperstep;
           DateTime Arrival =  starttime.AddSeconds(res);
            Console.WriteLine("Time Arrival: {0}",Arrival.ToString("HH:mm:ss"));
        }
    }
}

 

0
ObedMarsh avatar ObedMarsh 1 Точки

Поблъсках се в интернет за готови методи и го сглобих така:

 

public static void Main(string[] args)
    {
        string input = Console.ReadLine();
            int stepsCount = int.Parse(Console.ReadLine()) % 86400;
            int secondsPerStep = int.Parse(Console.ReadLine()) % 86400;

            DateTime d = DateTime.Parse(input);
            TimeSpan duration = TimeSpan.FromSeconds(secondsPerStep * stepsCount);

            TimeSpan ts = d.TimeOfDay.Add(duration);
            Console.WriteLine("Time Arrival: {0:D2}:{1:D2}:{2:D2}", ts.Hours, ts.Minutes, ts.Seconds);
    }

 

0
03/09/2017 10:37:37
Boris.stavrev92 avatar Boris.stavrev92 42 Точки

// 100 / 100    

DateTime timeOfLeavingSoftUni = DateTime.Parse(Console.ReadLine());

            //int step = int.Parse(Console.ReadLine()) % 86400;
            //int seconds = int.Parse(Console.ReadLine()) % 86400;
            //86400 секунди = 1 ден
            //махаме цели дни, ако някой се прави на интересен да ни ги подава като вход

            int stepsTaken = int.Parse(Console.ReadLine()) % 86400;
            int stepsPerSec = int.Parse(Console.ReadLine()) % 86400;

            int timeInTravel = stepsTaken * stepsPerSec;
            DateTime result = timeOfLeavingSoftUni.AddSeconds(timeInTravel);

            //Output
            Console.WriteLine("Time Arrival: {0:HH:mm:ss}", result);

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