93512024-02-20 19:07:53FarkasZénóVáltakozó (75 pont)python3Time limit exceeded 36/75583ms17608 KiB
from sys import stdin
from collections import defaultdict

def kovetkezo(elozo, betuk, hossz, sorozat):
	if hossz == 0:
		return sorozat
	legtobb = 0
	for betu, darab in betuk.items():
		if darab > legtobb:
			legtobb = darab
			legtobb_betu = betu
	if legtobb > hossz // 2:
		sorozat.append(legtobb_betu)
		
szo = stdin.readline().strip()
N = len(szo)
szamolo = dict()
for betu in szo:
	if betu in szamolo:
		szamolo[betu][0] += 1
	else:
		szamolo[betu] = [1, betu]
betuk = sorted(szamolo.values(), reverse=True)
sorozat = []
def kovetkezo(betu):
	sorozat.append(betu)
	szamolo[betu][0] -= 1
	if szamolo[betu][0] == 0:
		betuk.remove(szamolo[betu])
		del szamolo[betu]
if betuk[0][0] <= (N+1) // 2:
	elozo = None
	for i in range(N):
		hossz = N - i
		if hossz % 2 == 1 and betuk[0][0] == (hossz+1) // 2:
			x = betuk[0][1]
		else:
			x = 'zz'
			for betu in szamolo:
				if betu == elozo:
					continue
				x = min(x, betu)
		kovetkezo(x)
		elozo = x
		betuk.sort(reverse=True)
	print(''.join(sorozat))
else:
	print(-1)
SubtaskSumTestVerdictTimeMemory
base36/75
1Accepted0/020ms11660 KiB
2Accepted0/028ms12204 KiB
3Accepted3/320ms12192 KiB
4Accepted3/320ms12376 KiB
5Accepted3/320ms12476 KiB
6Accepted3/319ms12768 KiB
7Accepted3/356ms13544 KiB
8Accepted3/3361ms17608 KiB
9Accepted3/374ms13940 KiB
10Accepted3/375ms14216 KiB
11Accepted3/337ms13588 KiB
12Accepted3/335ms13624 KiB
13Accepted3/334ms14096 KiB
14Accepted3/326ms14240 KiB
15Time limit exceeded0/3532ms7484 KiB
16Time limit exceeded0/3527ms7140 KiB
17Time limit exceeded0/3583ms7580 KiB
18Time limit exceeded0/3579ms7512 KiB
19Time limit exceeded0/3564ms7708 KiB
20Time limit exceeded0/3551ms7632 KiB
21Time limit exceeded0/3568ms7712 KiB
22Time limit exceeded0/6575ms7584 KiB
23Time limit exceeded0/6579ms7620 KiB
24Time limit exceeded0/6555ms7920 KiB