93522024-02-20 19:09:21FarkasZénóVáltakozó (75 pont)pypy3Időlimit túllépés 36/75587ms111624 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/048ms78740 KiB
2Elfogadva0/065ms89888 KiB
3Elfogadva3/346ms78784 KiB
4Elfogadva3/343ms79468 KiB
5Elfogadva3/341ms79920 KiB
6Elfogadva3/339ms79984 KiB
7Elfogadva3/390ms92968 KiB
8Elfogadva3/3180ms111624 KiB
9Elfogadva3/359ms91184 KiB
10Elfogadva3/359ms91404 KiB
11Elfogadva3/368ms91696 KiB
12Elfogadva3/381ms91932 KiB
13Elfogadva3/374ms91804 KiB
14Elfogadva3/363ms92408 KiB
15Időlimit túllépés0/3551ms35892 KiB
16Időlimit túllépés0/3546ms34224 KiB
17Időlimit túllépés0/3568ms35108 KiB
18Időlimit túllépés0/3564ms35220 KiB
19Időlimit túllépés0/3544ms34752 KiB
20Időlimit túllépés0/3551ms34708 KiB
21Időlimit túllépés0/3583ms34904 KiB
22Időlimit túllépés0/6564ms35056 KiB
23Időlimit túllépés0/6583ms36032 KiB
24Időlimit túllépés0/6587ms35980 KiB