Описание
Всеки знае, че второто най-важно нещо в живота на програмиста е да пише код, но най-важното е да пие бира. Митко и Владко са много известни програмисти. В 19-тото световно състезание по програмиране двамата се срещнали. Състезанието се състои от N на брой рунда. Във всеки рунд двамата състезатели трябва да пият бира. Митко и Владко са много добри програмисти, затова те пият наистина много бира. Съдиите са пияни и не могат да изчислят колко бира е изпита от всеки състезател, и не могат да определят по-добрият програмист.
Решение
using System; | |
namespace TelerikExamples { | |
class DrunkenNumbers { | |
static void Main() { | |
// брой рундове - прочита се от конзолата | |
byte rounds = byte.Parse(Console.ReadLine()); | |
// спечелени точки (една изпита бира = една точка) | |
int vladkoScore = 0; | |
int mitkoScore = 0; | |
for (byte round = 0; round < rounds; round++) { | |
// "пияно" число - прочита се от конзолата | |
int drunkenNumber = Math.Abs(int.Parse(Console.ReadLine())); | |
// брой цифри в числото // | |
int digitsCount = drunkenNumber.ToString().Length; | |
int digitsCount = (int) Math.Floor(Math.Log10(drunkenNumber)) + 1; | |
// начален индекс за Владко | |
int start = (int) Math.Floor(digitsCount * 0.5); | |
// отместване от началото на числото | |
int offset = digitsCount % 2 == 0 ? start : start + 1; | |
for (int index = 0; index < offset; index++) { | |
mitkoScore += int.Parse(drunkenNumber.ToString().Substring(index, 1)); | |
vladkoScore += int.Parse(drunkenNumber.ToString().Substring(start + index, 1)); | |
} | |
} | |
// разлика в точките | |
int scoreDifference = Math.Abs(mitkoScore - vladkoScore); | |
// сбор на точките | |
int totalScore = mitkoScore + vladkoScore; | |
// определяне на победителя | |
if (mitkoScore > vladkoScore) { | |
// победител е Митко | |
Console.WriteLine("M {0}", scoreDifference); | |
} else if (mitkoScore < vladkoScore) { | |
// победител е Владко | |
Console.WriteLine("V {0}", scoreDifference); | |
} else { | |
// няма победител | |
Console.WriteLine("No {0}", totalScore); | |
} | |
} | |
} | |
} |