Описание
Всеки знае, че второто най-важно нещо в живота на програмиста е да пише код, но най-важното е да пие бира. Митко и Владко са много известни програмисти. В 19-тото световно състезание по програмиране двамата се срещнали. Състезанието се състои от N на брой рунда. Във всеки рунд двамата състезатели трябва да пият бира. Митко и Владко са много добри програмисти, затова те пият наистина много бира. Съдиите са пияни и не могат да изчислят колко бира е изпита от всеки състезател, и не могат да определят по-добрият програмист.
Решение
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} | |
} | |
} |