35302023-02-28 17:54:49DoraAutókódoláscsharpIdőlimit túllépés 34/50301ms25260 KiB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace autokodolas
{
    internal class Program
    {
        static void Main(string[] args)
        {
            long n = long.Parse(Console.ReadLine());

            // Count the number of 1 bits in the binary representation of n
            int oneBits = CountOneBits(n);

            // Find the previous code with the same number of 1 bits
            long prevCode = n - 1;
            while (prevCode >= 1 && CountOneBits(prevCode) != oneBits)
            {
                prevCode--;
            }

            // Find the next code with the same number of 1 bits
            long nextCode = n + 1;
            while (CountOneBits(nextCode) != oneBits)
            {
                nextCode++;
            }

            // Kiírás
            if (prevCode > 0)
            {
                Console.WriteLine(prevCode.ToString());
            }
            else
            {
                Console.WriteLine("-1");
            }

            if (nextCode > 0)
            {
                Console.WriteLine(nextCode.ToString());
            }
            else
            {
                Console.WriteLine("-1");
            }

            Console.ReadKey();
        }

        static int CountOneBits(long n)
        {
            string kettes = Convert.ToString(n, 2);         //átírja kettes számrendszerbe a számot
            int count = 0;
            int tmp;
            /*
            while (n > 0)
            {
                if (n % 2 == 1)
                {
                    count++;
                }
                n /= 2;
            }*/
            //Console.WriteLine(n + " " + kettes);
            for(int i = 0; i<kettes.Length; i++)
            {
                tmp = (int) char.GetNumericValue(kettes[i]);
                //Console.WriteLine("tmp: " + tmp);
                if (tmp == 1)
                {
                    count++;
                }
            }
            return count;
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base34/50
1Elfogadva0/028ms21132 KiB
2Időlimit túllépés0/0301ms8864 KiB
3Elfogadva2/228ms21996 KiB
4Elfogadva2/227ms22148 KiB
5Elfogadva2/227ms22156 KiB
6Elfogadva2/227ms22240 KiB
7Elfogadva2/228ms22668 KiB
8Elfogadva4/428ms23084 KiB
9Elfogadva4/427ms22768 KiB
10Elfogadva4/428ms22748 KiB
11Elfogadva4/428ms22936 KiB
12Elfogadva4/427ms23248 KiB
13Időlimit túllépés0/4252ms10892 KiB
14Elfogadva4/446ms25260 KiB
15Időlimit túllépés0/4261ms10848 KiB
16Időlimit túllépés0/4257ms11060 KiB
17Időlimit túllépés0/4282ms11268 KiB