Решение задачи k-Строка с Codeforces

Без пояснения   Просмотров: 28


Строка называется k-строкой, если она может быть представлена в виде k копий некоторой строки, записанных подряд. Например, строка aabaabaabaab является одновременно 1-строкой, 2-строкой и 4-строкой, но не является 3-строкой, 5-строкой, 6-строкой и так далее. Очевидно, любая строка является 1-строкой.

Вам задана строка s из строчных букв латинского алфавита и целое положительное число k. Требуется переставить буквы в строке s таким образом, чтобы результат являлся k-строкой.

Код

#include<bits/stdc++.h>
using namespace std;
int k,a[200];
string s;
int main()
{
	cin>>k>>s;
	for(int i=0;i<s.size();i++)
		a[s[i]]++;
	for(int i=0;i<200;i++)
	{
		if(a[i]%k)
		{
			cout<<-1;
			return 0;
		}
	}
	for(int i=0;i<k;i++)
	{
		for(int j=0;j<200;j++)
		{
			for(int x=0;x<a[j]/k;x++)
				cout<<(char)j;
		}
	}
	return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться