Тръби в басейн . Междинен тест 26 Март (Judge ми дава 20/100 и нямам идея защо, проверих официалното решение, но пак не намирам разлика.)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace pipes_in_pool
{
class Program
{
static void Main(string[] args)
{
var vPool = int.Parse(Console.ReadLine());
var p1 = int.Parse(Console.ReadLine());
var p2 = int.Parse(Console.ReadLine());
var time = double.Parse(Console.ReadLine());
var vPipes = (p1 * time) + (p2 * time);
var pipeOnePercent = (p1 * time) / vPipes * 100;
var pipeTwoPercent = (p2 * time) / vPipes * 100;
var vFullPool = vPipes / vPool * 100;
var overflow = vFullPool - vPool;
var pipeTwoPercentExact = pipeTwoPercent - (pipeTwoPercent / 100);
if (vPipes <= vPool)
{
Console.WriteLine($"The pool is {Math.Round(vFullPool)}% full. Pipe 1: {Math.Round(pipeOnePercent)}%. Pipe 2: {Math.Round(pipeTwoPercentExact)}%.");
}
else if (vPipes > vPool)
{
Console.WriteLine($"For {time} hours the pool overflows with {overflow} liters.");
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Условие - http://prntscr.com/as5e9e
Официалното решение - http://pastebin.com/zDNJV8Kp
с тоя math.truncate навсякъде тои ти сваля стойноста винаги надолу и затов ти бяга примерно имаш 1.5 ще е 1 и тн
оправи си само последния резултат да т ие math,truncate и ще се оправиш...
и бтв защо всички пишете на c# и ползвате var? wtf
Защото всички идват от Pascal и мислят, че с var се декларира променлива!
На лекциите така е показано, но не казват, че това е вариантен тип, който може да приема стойности на другите типове, но заема много памет.
https://pastebin.com/YD68q17c това е нов код, и все пак дава 76/100 точки.
Не разбирам зашо?
Опитах и с Math.Truncate() и c Math.Floor() все пак дава 76 точки.
Може би грешка в Judge?
Много ви благодаря за помощ,
Грешката не е в Judge, а в този ред:
Console.WriteLine("For {0:0.0} hours the pool overflows with {1:0.0} liters.", hoursMiss, overflow);
Никъде не е указано, че служителят е офейкал за време, отговарящо на формата 0.0. Дай му свобода и махни форматирането:
Console.WriteLine("For {0} hours the pool overflows with {1:0.0} liters.", hoursMiss, overflow);
Много Ви благодаря!
Вярно, грешка беше само в този ред.
Сега 100/100 в Judge :-)
Ще бъда по-внимателен следващия път!