46782023-03-31 08:07:58TortelliniJrVáltakozó (75 pont)csharpHibás válasz 27/75587ms31248 KiB
using System;
using System.Linq;

class MainClass
{
    public static void Main(string[] args)
    {
        string s = Console.ReadLine();

        int[] cnt = new int[26];

        foreach (char c in s)
        {
            cnt[c - 'a']++;
        }

        int n = s.Length, mx = cnt.Max();
        char last = '-';

        if (2 * mx > n + 1)
        {
            Console.WriteLine("-1");
            return;
        }

        for (int i = 0; i < n; i++)
        {
            mx = cnt.Max();
            int secondMx = cnt.OrderByDescending(x => x).Skip(1).First();
            for (int j = 0; j < 26; j++)
            {
                if (last != (char)('a' + j) && cnt[j] > 0)
                {
                    if (mx == cnt[j] || mx <= (n - i - 1) / 2 && secondMx <= n - i - mx - 2)
                    {
                        Console.Write((char)('a' + j));
                        cnt[j]--;
                        last = (char)('a' + j);
                        break;
                    }
                }
            }
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base27/75
1Hibás válasz0/032ms21308 KiB
2Hibás válasz0/039ms23092 KiB
3Részben helyes2/332ms22024 KiB
4Elfogadva3/332ms22108 KiB
5Részben helyes2/332ms22748 KiB
6Elfogadva3/332ms22864 KiB
7Elfogadva3/3136ms31248 KiB
8Időlimit túllépés0/3560ms11840 KiB
9Elfogadva3/330ms24096 KiB
10Elfogadva3/329ms24024 KiB
11Részben helyes2/346ms25864 KiB
12Részben helyes2/345ms25888 KiB
13Részben helyes2/345ms25888 KiB
14Részben helyes2/343ms25564 KiB
15Időlimit túllépés0/3558ms12056 KiB
16Időlimit túllépés0/3566ms12616 KiB
17Időlimit túllépés0/3550ms12532 KiB
18Időlimit túllépés0/3575ms12836 KiB
19Időlimit túllépés0/3552ms12792 KiB
20Időlimit túllépés0/3575ms12840 KiB
21Időlimit túllépés0/3587ms13120 KiB
22Időlimit túllépés0/6568ms13188 KiB
23Időlimit túllépés0/6555ms13488 KiB
24Időlimit túllépés0/6555ms13628 KiB