Complex Conditional Statements - 13. Volleyball - Аз ли съм в грешка?
Влади е студент, живее в София и си ходи от време на време до родния град. Той е много запален по волейбола, но е зает през работните дни и играе волейбол само през уикендите и в празничните дни. Влади играе в София всяка събота, когато не е на работа и не си пътува до родния град, както и в 2/3 от празничните дни. Той пътува до родния си град h пъти в годината, където играе волейбол със старите си приятели в неделя.Влади не е на работа 3/4 от уикендите, в които е в София.Отделно, през високосните години Влади играе с 15% повече волейбол от нормалното. Приемаме, че годината има точно 48 уикенда, подходящи за волейбол.
Напишете програма, която изчислява колко пъти Влади е играл волейбол през годината. Закръглете резултата надолу до най-близкото цяло число (например 2.15 à 2; 9.95 à 9).
Входните данни се въвеждат от потребителя, в следния вид:
- Първият ред съдържа думата “leap” (високосна година) или “normal” (невисокосна).
- Вторият ред съдържа цялото число p – брой празници в годината (които не са събота и неделя).
- Третият ред съдържа цялото число h – брой уикенди, в които Влади си пътува до родния град.
вход |
изход |
Коментари |
leap 5 2 |
45 |
48 уикенда в годината, разделени по следния начин:
5празника:
Общо игри през уикенди и празници в София и в родния град: 34.5 + 2 + 3.333 са 39.833 Годината е високосна:
Общо игри през цялата година:
|
В пресмятането на уикендите би трябвало първо да се изчислят 3/4 от възможни 48, защото пича е на работа през останалите и чак тогава да се вадят тези, през които се е прибрал и да се добавят тези, през които играе у дома (ненужно).
Или 48*3/4-h+h+(p*2/3), което е различно от решението по-горе (48-h)*3/4+h(p*2/3)!
Вярното уравнение е дори 36 + (p*2/3) за невисокосна и (36 + (p*2/3))*1,15 за високосна година!
Колкото са повече уикендите в родния му град толкова е по-голяма грешката.
Решението в djudge ли е грешно или аз греша?
Привет Колеги, ето едно простичко решение, което взима 100 точки от "Съдята" :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _12_Volleybal
{
class Program
{
static void Main(string[] args)
{
string year = Console.ReadLine().ToLower();
int holidays = int.Parse(Console.ReadLine());
int weekendsHome = int.Parse(Console.ReadLine());
double weekendsSofia = (((48 - weekendsHome) * 3.0 / 4) + (holidays * 2.0 / 3));
double totalPlay = weekendsHome + weekendsSofia;
if (year == "leap")
{
Console.WriteLine(Math.Truncate(totalPlay + (totalPlay * 0.15)));
}
else if(year == "normal")
{
Console.WriteLine(Math.Truncate(totalPlay));
}
}
}
}