Loading...
martin_nd avatar martin_nd 0 Точки

 Programming Basics Exam - 17 July 2016, Harvest задача, не дава 100 точки в Judge

Здравейте,

Имам въпрос за една от задачите на Programming Basics Exam - 17 July 2016, Harvest задачата. Тествах в Judge-a обаче ми дава 50 точки, а когато тествам кода на конзолата с примерните цифри от самата задача всичко работи. Някои знае ли къде е грешката и как да си взема 100 от 100 :)

 

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

namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {

            var SizeLoze = double.Parse(Console.ReadLine());
            var Grozde = double.Parse(Console.ReadLine());
            var RequiredLitterWine = double.Parse(Console.ReadLine());
            var Employees = double.Parse(Console.ReadLine());

            var SizeWine = SizeLoze * Grozde;
            var Wine = (0.40 * SizeWine) / 2.5;
            if (Wine > RequiredLitterWine)
            {
                var Diff = (Wine - RequiredLitterWine);
                var Diff1 = Diff / Employees;

                Console.WriteLine("Good harvest this year! Total wine: {0:0} liters.", Wine);
                Console.WriteLine("{0} liters left -> {1} liters per person.", Diff, Diff1 );


            }
            else if (Wine < RequiredLitterWine)

            {
                var Diff = (RequiredLitterWine - Wine);
                var Diff1 = Diff / Employees;
                Console.WriteLine("It will be a tough winter! More {0:0} liters wine needed.", Diff);
            }
        }
    }
}
 

Тагове:
0
Programming Basics
Plamen27 avatar Plamen27 599 Точки
Best Answer

      Ето фикс на кода от мен:     

          var SizeLoze = double.Parse(Console.ReadLine());
            var Grozde = double.Parse(Console.ReadLine());
            var RequiredLitterWine = double.Parse(Console.ReadLine());
            var Employees = double.Parse(Console.ReadLine());

            var SizeWine = SizeLoze * Grozde;
            var Wine = (0.40 * SizeWine) / 2.5;
            if (Wine >= RequiredLitterWine)///
            {
                var Diff = Math.Ceiling(Wine - RequiredLitterWine);
                var Diff1 = Math.Ceiling(Diff / Employees);

                Console.WriteLine("Good harvest this year! Total wine: {0} liters.", Math.Floor(Wine));
                Console.WriteLine("{0} liters left -> {1} liters per person.", Diff, Diff1 );
            }
            else if (Wine < RequiredLitterWine)

            {
                var Diff = Math.Floor(RequiredLitterWine - Wine);
                Console.WriteLine("It will be a tough winter! More {0} liters wine needed.", Diff);
            }

0
StefkaVasileva avatar StefkaVasileva 250 Точки

Това, което виждам на пръв поглед е че не си закръглял резултатите по никакъв начин. В условието до колкото си спомням трябваше да се закръгля или към по-високото или към по-ниското  цяло число. Опитай с Math.Ceiling и Math.Floor. 

0
Terziyski avatar Terziyski 54 Точки

Здравей , прилагам и моето решение :

http://pastebin.com/zDL2rrad

След много тестове които ми даваха по 60-70 /100 точки .  Реших, че явно бъркам някъде с закръглаянето, а аз бях използвал Math.Round. 

След като го смених с Math.Ceiling задачата стана 100 /100 точки :)

Поздрави!

 

0
g_todorov avatar g_todorov 106 Точки

ето едно решение и от мен:

            var vineyardSquareM = int.Parse(Console.ReadLine());
            var grapesPer1SquareM = double.Parse(Console.ReadLine());
            var litersNeededWineForSale = int.Parse(Console.ReadLine());
            var countWorkers = int.Parse(Console.ReadLine());

            var totalGrapes = vineyardSquareM * grapesPer1SquareM;
            var wine = ((totalGrapes / 2.5) * 40) / 100;
            if (wine>= litersNeededWineForSale)
            {
                var remainingWine = wine - litersNeededWineForSale;
                var litersPerWorker = remainingWine / countWorkers;
                Console.WriteLine("Good harvest this year! Total wine: {0} liters.", Math.Floor(wine));
                Console.WriteLine(" {0} liters left -> {1} liters per person.", Math.Ceiling(remainingWine),Math.Ceiling(litersPerWorker));
            }
            else
            {
                var insufficientLiters = litersNeededWineForSale - wine;
                Console.WriteLine("It will be a tough winter! More {0} liters wine needed.",Math.Floor(insufficientLiters));
            }

0
cvetomirG avatar cvetomirG 132 Точки

По-голямо и равно :)
 

  if (Wine >=  RequiredLitterWine)  - fixed

 

0
GapoBG avatar GapoBG 15 Точки

Къде бъркам , че ми дава 90/100

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

namespace Harvest
{
    class harvest
    {
        static void Main(string[] args)
        {
            var X = int.Parse(Console.ReadLine());
            var Y = double.Parse(Console.ReadLine());
            var needL = int.Parse(Console.ReadLine());
            var workers = int.Parse(Console.ReadLine());

            var Harvest = X * Y;
            var wine = 0.4 * Harvest / 2.5;

            if (wine >= needL)
            {
                var delta = Math.Ceiling(wine - needL);
                var needPerson = Math.Ceiling(delta / workers);
                Console.WriteLine("Good harvest this year! Total wine: {0} liters.", wine);
                Console.WriteLine("{0} liters left -> {1:0} liters per person.", delta, needPerson);
            }
            else
            {
                var delta = Math.Floor(needL - wine);
                Console.WriteLine("It will be a tough winter! More {0} liters wine needed.", delta);
            }

        }
    }
}

 

0
fbinnzhivko avatar fbinnzhivko 1586 Точки

GapoBG  малка грешка 

 

using System;
namespace Harvest
{
    class harvest
    {
        static void Main(string[] args)
        {
            var X = int.Parse(Console.ReadLine());
            var Y = double.Parse(Console.ReadLine());
            var needL = int.Parse(Console.ReadLine());
            var workers = int.Parse(Console.ReadLine());
            var Harvest = X * Y;
            var wine = 0.4 * Harvest / 2.5;
            if (wine >= needL)
            {
                var delta = Math.Ceiling(wine - needL);
                var needPerson = Math.Ceiling(delta / workers);
                Console.WriteLine("Good harvest this year! Total wine: {0} liters.",Math.Floor(wine));
                Console.WriteLine("{0} liters left -> {1:0} liters per person.", delta, needPerson);
            }
            else
            {
                var delta = Math.Floor(needL - wine);
                Console.WriteLine("It will be a tough winter! More {0} liters wine needed.", delta);
            }
        }
    }
}

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