Проблем с решаването на задача от Coding 101 Exam - 26 March 2016
Здравейте, опитвам се да реша тази задача "Задача 02 - Тръби в басейн".
Първоначално ми се стори много лесна, написах моето решение за няколко минути.
Тествах примерните входни данни, посочени в условието на задачата и всичко си работи добре.
Но когато се стигне до judge ми се дават само 53 / 100 точки, като не ми се показва къде греша.
Ако някой може да ми обясни къде ми е грешката, ще съм му много благодарен.
Ето и кода:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace tubes_in_the_pool
{
    class Program
    {
        static void Main(string[] args)
        {
            int poolV = int.Parse(Console.ReadLine());
            int pipe1 = int.Parse(Console.ReadLine());
            int pipe2 = int.Parse(Console.ReadLine());
            double hours = double.Parse(Console.ReadLine());
            // Литраж на водата изливана от 2-те тръби поотделно.
            double pipe1Liters = pipe1 * hours;
            double pipe2Liters = pipe2 * hours;
            // Общо количесво вода от 2-те тръби.
            double totalTwoPipes = pipe1Liters + pipe2Liters;
            // Какво количество вода е преляла. Ако прелее.
            double overflows = totalTwoPipes - poolV;
            // Какъв процент от целия басейн е пълен с вода.
            double poolPercentFull = (totalTwoPipes / poolV) * 100;
            
            // Какъв е процента на всяка една тръба от водата излята в басейна
            double pipe1Percent = (int)((pipe1Liters / totalTwoPipes) * 100);
            double pipe2Percent = (int)((pipe2Liters / totalTwoPipes) * 100);
            if (totalTwoPipes <= poolV)
            {
                Console.WriteLine("The pool is {0}% full. Pipe 1: {1}%. Pipe 2: {2}%.", 
                    poolPercentFull, pipe1Percent, pipe2Percent);
            }
            else
            {
                Console.WriteLine("For {0} hours the pool overflows with {1} liters.", hours, overflows);
            }
        }
    }
}
Правилна е забележката за коректността на въпросния тест. Но не е указано какво да се случва при въвеждане на некоректни данни. Явно идеята на ограниченията е била само да се определят типовете на променливите (short, int), които да се използват при запазване на входните данни. Например, за обема на басейна и дебитите на тръбите е подходящо да се използва ushort.
Сега погледнах авторското решение - и той като мен е използвал int и double
Най-лесно е да се махнат от условието на задачата тези интервали, ама това е все 1 да променяш Историята на минали събития и факти.
Затова прецених, че е по-добре да се промени самата система за проверка.
Ама карай - за друг път ще знам - първо ще гледам тест файловете за вход и изход и по тях ще се ориентирам какво е искал да мисли автора.