Решение задачи Разнообразие - это хорошо с Codeforces

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


Однажды умный старец сказал Кариму, что разнообразие — это хорошо, и с тех пор Карим хочет, чтобы всё в его жизни было разнообразным.

Недавно Кариму подарили строку s, состоящую из строчных букв английского алфавита. Поскольку Карим любит разнообразие, то он хочет, чтобы все подстроки строки s были различными. Подстрокой строки s называется некоторое количество последовательных символов данной строки. Например, подстроками строки «aba» являются «» (пустая подстрока), «a», «b», «a», «ab», «ba» и «aba».

Если хотя бы две подстроки строки s совпадают, то Карим меняет символы в некоторых позициях на другие строчные буквы английского алфавита. Менять символы очень утомительно, поэтому Карим хотел бы сделать как можно меньше изменений.

По данной строке s определите минимальное количество изменений, которое потребуется внести в строку, чтобы все её подстроки стали различными, или определите, что это невозможно.

Код

#include<bits/stdc++.h>
using namespace std;
int n,c;
string s;
bool b[200];
int main()
{
	cin >> n >> s;
	if(n > 26){
		cout << -1;
		return 0;
	}
	for(int i = 0; i < n; i++){
		if(b[s[i]])
			c++;
		else
			b[s[i]] = 1;
	}
	cout << c;
	return 0;
}

         

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



Комментарии

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