Loading...
luki_strike avatar luki_strike 9 Точки

Sample-Coding-Basics-Exam - Задача 2. Пренасяне на тухли

Всички входни числа са цели и в диапазона [11000].

using System;

class PrenasqneTuhli
{
    static void Main()
    {
        var x = int.Parse(Console.ReadLine());
        var w = int.Parse(Console.ReadLine());
        var m = int.Parse(Console.ReadLine());
        double move = 0;
        if (x >= 1 & x <= 1000 & w >= 1 & w <= 1000 & m >= 1 & m <= 1000)
        {
            if (x % (w * m) == 0)
            {
                move = x / (w * m);
            }
            else if (x % (w * m) != 0)
            {
                move = (x / (w * m)) + 1;
            }
            Console.WriteLine("Минималният брой курсове е: " + move);
        }
    }
}

Това е решението ми и в Тест 6 ми дава грешка и получавам 90 точки. След като махнах проверката на въведените числа дали са измежду 1 и 1000 както е по условие получих 100 точки. Това е гршка в judge системата или в условие е добавено неволно дизпазон в който варират числата. Благодаря!

1
Programming Basics 06/03/2016 20:22:54
WifiAvivi avatar WifiAvivi 151 Точки

Тази задача ми счупи главата, докато си намеря "грешката". Наистина Test #6 е с 0 (нула).

Как може да се уверите в това? Ами просто въведете този код в judge-a:

using System;
class JudgeTest6
{
    static void Main()
    {
        Console.WriteLine(0);
    }
}

Явно има някакъв бъг, защото 0 (нула) не може да се получи като изход съгласно условието - всички входни числа са цели и в диапазона [11000]). Следователно винаги ще има поне една тухла / работник / вместимост като вход, което значи и най-малко поне един курс като изход.

2
05/06/2016 22:19:50
rado84 avatar rado84 1 Точки

Не знам дали има тест с 0, но на мен ми я даде от първия път.

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

namespace MovingTiles
{
    class Program
    {
        static void Main(string[] args)
        {
            double bricks = double.Parse(Console.ReadLine());
            double workers = double.Parse(Console.ReadLine());
            double carts = double.Parse(Console.ReadLine());

            double courses = bricks / (workers * carts);
            Console.WriteLine(Math.Ceiling(courses));
        }
    }
}

Единствената уловка в тая задача е, че променливите или трябва всичките да са дабъл, или да кастваш от един тип в друг. Защото при един от примерните входове се получават 11 цяло и нещо курсове (плаваща запетая). И понеже няма как да направиш половин курс с количка, това си се брои за отделен курс.

 

П.С. Не гледайте, че името е MovingTiles. Преди това бях решавал "поправка на плочки" и явно съм си мислел за предишната задача, докато пиша името. А сега не знам как да преименувам проекта без той да се счупи.

-1
06/06/2016 03:48:16
WifiAvivi avatar WifiAvivi 151 Точки

Прав си за уловката. Името на задачата е 02. Bricks . Иначе, пусни този код в judge:

using System;
class JudgeTest6
{
    static void Main()
    {
        Console.WriteLine(0);
    }
}

 

0
06/06/2016 11:50:43
rado84 avatar rado84 1 Точки

Да, номер 6 го изкара с верен отговор. Явно, че освен предварително зададените входове, Judge ползва и RNG (Random Number Generator; който знае какво е WOT, знае и какво е RNG). Иначе не виждам откъде ще се вземе тази нула.

0
elitsarangelova avatar elitsarangelova 2 Точки

Моето решение, дано да ти помогне.. 100 от 100


            decimal x = decimal.Parse(Console.ReadLine());
            decimal w = decimal.Parse(Console.ReadLine());
            decimal m = decimal.Parse(Console.ReadLine());
            decimal result = x / w / m;
            Console.WriteLine(Math.Ceiling(result));

 

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