Основное
 
 
Отправитель Задача Язык Вердикт Время Память Отослано Протест.  
45984419 Дорешивание:
vjudge1
1070J - 29 GNU C++11 Полное решение 139 мс 4904 КБ 2018-11-20 08:14:58 2018-11-20 08:14:58
→ Исходный код
#include <bits/stdc++.h>
#define INF 1000000000
using namespace std;
const int M = 1000010;
int num[110],f[M],n,m,K;
char s[M];
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d%d%s",&n,&m,&K,s+1);
		memset(num,0,sizeof(num));
		for(int i=1;i<=K;i++)
			num[s[i]-'A'+1]++;
		long long ans=INF;
		int h=K-n-m;
		if(n<m)
			swap(n,m);
		f[0]=1;
		for(int i=1;i<=26;i++)
		{
			for(int j=1;j<=n;j++)
				f[j]=0;
			for(int j=1;j<=26;j++)
			{
				if(i==j)
					continue;
				for(int k=n;k>=num[j];k--)
					f[k]|=f[k-num[j]];		
			}
			for(int j=min(n,num[i]);j>=0;j--)
			{
				if(!f[n-j])
					continue;
				ans=min(ans,(long long)j*max(0,num[i]-j-h)); 
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}
?
Время: ? ms, память: ? КБ
Вердикт: ?
Ввод
?
Вывод участника
?
Ответ жюри
?
Комментарий чекера
?
Диагностика
?
Показать детали тестирования