IT Blog
RSS icon Email icon
  • Big Bombs

    Posted on March 3rd, 2013 Krasi Nikolov No comments

    Задачата за третия етап от конкурса на PC Magazin и Telerik, беше много интересна. За първи път имаше доста програмиране в приложната част. Правилата на играта, която трябваше да се имплементира, са сравнително прости.
    Имаме поле 101х101, защитникът разполага със солни мини, които трябва да се охраняват. Самата защита се осъществява от оборудвани пилета. Нападателят разполага с две бойни единици: Голяма бомба, която има радиус от 0 до 19, и гуци с гърмелка, което има радиус 1.5. Read the rest of this entry »

  • Изпит в Софтуерната Академия на Телерик – C# втора част

    Posted on February 11th, 2013 Krasi Nikolov No comments

    Записах се за изпит за първата възможна дата, защото напоследък съм затрупан от ангажименти и ми се щеше да отпиша поне C# от списъка с проблеми за решаване. Като подготовка за изпита, реших няколко задачи от миналогодишните и не бях особено обнадежден. От една страна, за решаването на всяка задача ми отиваха поне 2-3 часа, от друга страна стигаха до 80-90%. Нямах нито една задача на 100%, всеки път достигах до time limit. Read the rest of this entry »

  • Сортиране чрез сливане

    Posted on January 10th, 2013 Krasi Nikolov No comments

    Ще се постарая накратко и възможно най- просто да обясня, как може да се напише клас на c#, който сортира масив по рекурсивния метод.
    Първо накратко да обясня, какво представлява метода за сортиране чрез сливане. Взема се един масив с n елемента и се разделя на n отделни масива с по 1 елемент. След това на всяка стъпка, всеки масив се обединява със следващия и се сортира. Например ако имаме един масив с 8 елемента, той се дели на 8 масива с по един елемент. На първа стъпка, първият се сравнява със втория, третия с четвъртия… и така се получават 4 масива с по 2 подредени елемента. Същата операция се повтаря и с вече подредените масив, докато накрая не остане само един подреден масив.
    А сега да обясня, как аз решавам този проблем.
    Read the rest of this entry »

  • Triple Rotation Of Digits

    Posted on December 29th, 2012 Krasi Nikolov No comments
    using System;
     
    class Program
    {
        static void Main()
        {
            int k = int.Parse(Console.ReadLine());
            for (int i = 0; i < 3; i++)
            {
                int count = CountNumbers(k);
                if (count == 1)
                {
                    break;
                }
                int lastDigit = k % 10;
                k = k / 10;
                for (int j = 0; j < count-1; j++)
                {
                    lastDigit *= 10;
                }
                k = lastDigit + k;
            }
            Console.WriteLine(k);
        }
        static int CountNumbers(int n)
        {
            int count = 0;
            do
            {
                n = n / 10;
                count++;
            } while (n> 0);
            return count;
        }
    }
    

    Read the rest of this entry »

  • Angry Bits

    Posted on December 29th, 2012 Krasi Nikolov No comments

    Доста неща не са добре изпипани, но докато си напрегнат правиш нещата да работят, по първият начин за който се сетите.
    Това в началото е основната част от задачата, а именно движението на птицата до достигане на прасе. Тук загубих 1 час, защото бях пропуснал, това че движението завършва не само вляво а и долу.

                    do
                    {
                        flight++;
                        birdCol--;
                        if ((birdRow + addToRow < 0) || (birdRow + addToRow > 7))
                        {
                            addToRow *= -1;
                        }
                        birdRow += addToRow;
                        if ((birdCol < 8) && (field[birdRow, birdCol] == 1))
                        {
                            for (int k = birdRow - 1; k <= birdRow + 1; k++)
                            {
                                for (int l = birdCol - 1; l <= birdCol + 1; l++)
                                {
                                    if ((k >= 0) && (k < 8) && (l >= 0) && (l < 8))
                                    {
                                        if (field[k, l] == 1)
                                        {
                                            hit++;
                                            field[k, l] = 0;
                                        }
                                    }
                                }
                            }
                            birdCol = -1;
                        }
                        if (birdRow == 7)
                        {
                            birdCol = -1;
                        }
                  } while (birdCol > 0);
    
    

    Цялото решение:
    Read the rest of this entry »