Основное
 
 
Отправитель Задача Язык Вердикт Время Память Отослано Протест.  
44595820 Участник:
test616.cpp
1070J - 29 PyPy 2 Полное решение 1372 мс 7972 КБ 2018-10-20 15:29:26 2018-10-20 15:29:26
→ Исходный код
t=input()
for i in xrange(t):
	n, m, k=map(int, raw_input().split())
	cnt=[0]*26
	for ch in raw_input():
		cnt[ord(ch)-ord('A')]+=1
	assert sum(cnt)==k
	result=1000000000
	for common in xrange(26):
		dp=[False]*(n+1)
		dp[0]=True
		for cur in xrange(26):
			if cur!=common:
				cur=cnt[cur]
				for i in xrange(n, cur-1, -1):
					dp[i]=dp[i] or dp[i-cur]
		for i in xrange(max(n-cnt[common], 0), n+1):
			if dp[i]:
				result=min(result, (n-i)*max(m-(k-i-cnt[common]), 0))
				break
		for i in xrange(n, i, -1):
			if dp[i]:
				result=min(result, (n-i)*max(m-(k-i-cnt[common]), 0))
				break
	print result
	assert result<1000000000
?
Время: ? ms, память: ? КБ
Вердикт: ?
Ввод
?
Вывод участника
?
Ответ жюри
?
Комментарий чекера
?
Диагностика
?
Показать детали тестирования