93532024-02-20 19:09:56FarkasZénóVáltakozó (75 pont)python3Időlimit túllépés 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)
RészfeladatÖsszpontTesztVerdiktIdőMemória
base36/75
1Elfogadva0/018ms11488 KiB
2Elfogadva0/026ms11548 KiB
3Elfogadva3/317ms12060 KiB
4Elfogadva3/318ms12016 KiB
5Elfogadva3/317ms12396 KiB
6Elfogadva3/317ms12568 KiB
7Elfogadva3/354ms13268 KiB
8Elfogadva3/3365ms17020 KiB
9Elfogadva3/371ms13268 KiB
10Elfogadva3/368ms13424 KiB
11Elfogadva3/334ms12988 KiB
12Elfogadva3/335ms13000 KiB
13Elfogadva3/334ms12936 KiB
14Elfogadva3/323ms13276 KiB
15Időlimit túllépés0/3582ms6640 KiB
16Időlimit túllépés0/3572ms6216 KiB
17Időlimit túllépés0/3568ms6664 KiB
18Időlimit túllépés0/3572ms7040 KiB
19Időlimit túllépés0/3583ms7176 KiB
20Időlimit túllépés0/3587ms7320 KiB
21Időlimit túllépés0/3568ms7248 KiB
22Időlimit túllépés0/6572ms7180 KiB
23Időlimit túllépés0/6583ms7424 KiB
24Időlimit túllépés0/6563ms7516 KiB