35152023-02-28 14:48:21BenedekAutókódoláscsharpIdőlimit túllépés 38/50300ms23956 KiB
using System;

class Program
{
    static void Main(string[] args)
    {
        long n = long.Parse(Console.ReadLine());
        long prev = GetPreviousCode(n);
        long next = GetNextCode(n);

        Console.WriteLine(prev >= 0 ? prev.ToString() : "-1");
        Console.WriteLine(next >= 0 ? next.ToString() : "-1");
        Console.ReadKey();
    }

    static long GetPreviousCode(long n)
    {
        int bitCount = CountOnes(n);
        for (long i = n - 1; i >= 1; i--)
        {
            if (CountOnes(i) == bitCount) return i;
        }
        return -1;
    }

    static long GetNextCode(long n)
    {
        int bitCount = CountOnes(n);
        for (long i = n + 1; i <= long.MaxValue; i++)
        {
            if (CountOnes(i) == bitCount) return i;
        }
        return -1;
    }

    static int CountOnes(long n)
    {
        int count = 0;
        while (n > 0)
        {
            if ((n & 1) == 1) count++;
            n >>= 1;
        }
        return count;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base38/50
1Elfogadva0/028ms20432 KiB
2Időlimit túllépés0/0300ms4156 KiB
3Elfogadva2/227ms21216 KiB
4Elfogadva2/228ms21396 KiB
5Elfogadva2/226ms21972 KiB
6Elfogadva2/228ms22024 KiB
7Elfogadva2/228ms22320 KiB
8Elfogadva4/427ms22820 KiB
9Elfogadva4/427ms23216 KiB
10Elfogadva4/427ms23200 KiB
11Elfogadva4/428ms23684 KiB
12Elfogadva4/427ms23956 KiB
13Időlimit túllépés0/4300ms7204 KiB
14Elfogadva4/429ms23936 KiB
15Elfogadva4/482ms23812 KiB
16Időlimit túllépés0/4268ms7376 KiB
17Időlimit túllépés0/4246ms8048 KiB