93532024-02-20 19:09:56FarkasZénóVáltakozó (75 pont)python3Time limit exceeded 36/75587ms17020 KiB
from sys import stdin

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/018ms11488 KiB
2Accepted0/026ms11548 KiB
3Accepted3/317ms12060 KiB
4Accepted3/318ms12016 KiB
5Accepted3/317ms12396 KiB
6Accepted3/317ms12568 KiB
7Accepted3/354ms13268 KiB
8Accepted3/3365ms17020 KiB
9Accepted3/371ms13268 KiB
10Accepted3/368ms13424 KiB
11Accepted3/334ms12988 KiB
12Accepted3/335ms13000 KiB
13Accepted3/334ms12936 KiB
14Accepted3/323ms13276 KiB
15Time limit exceeded0/3582ms6640 KiB
16Time limit exceeded0/3572ms6216 KiB
17Time limit exceeded0/3568ms6664 KiB
18Time limit exceeded0/3572ms7040 KiB
19Time limit exceeded0/3583ms7176 KiB
20Time limit exceeded0/3587ms7320 KiB
21Time limit exceeded0/3568ms7248 KiB
22Time limit exceeded0/6572ms7180 KiB
23Time limit exceeded0/6583ms7424 KiB
24Time limit exceeded0/6563ms7516 KiB