Задать вопрос
2 сентября, 21:16

На с + + (с комментариями)

Максимальное время работы на одном тесте: 1 секунда

На день рождения Пете подарили набор карточек с буквами. Теперь Петя с большим интересом составляет из них разные слова. И вот, однажды, составив очередное слово, Петя заинтересоваля вопросом: "А сколько различных слов можно составить из тех же карточек, что и данное?". Помогите ему ответить на этот вопрос.

Входные данные

Вводится слово, составленное Петей - строка из маленьких латинских букв не длиннее 15 символов.

Выходные данные

Выведите одно целое число - искомое количество слов.

Примеры

входные данные

solo

выходные данные

12

+3
Ответы (1)
  1. 2 сентября, 21:51
    0
    String line; getline (cin, line) ; / / Можно и просто через cin ... даже наверное лучше в данном случае именно через cin;

    int count = 0;

    sort (line. begin (), line. end ()) ;

    do{

    count++;

    }while (next_permutation (line. begin (), line. end ())) ;

    cout<
    system ("pause") ;

    Где next_permutation - перебор всевозможных вариантов или делать, пока возможна перестановка.

    sort () - функция сортировки. Так же есть более медленный qsort.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «На с + + (с комментариями) Максимальное время работы на одном тесте: 1 секунда На день рождения Пете подарили набор карточек с буквами. ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы
Похожие вопросы по информатике
Уровень B. Задача M. Две одинаковые цифры рядом Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221). Входные данные Входная строка содержит одно натуральное число.
Ответы (1)
Помогите решить! 1))) Вводятся 4 числа: a, b, c и d. Выведите все числа на отрезке от a до b, дающие остаток c при делении на d Входные данные 1 4 1 2 выходные данные 1 3 Входные данный 1 5 0 4 выходные данные 4 2))) Выведите все числа на отрезке от
Ответы (1)
Входные данные Вводится натуральное число N, которое не превосходит 30. Выходные данные Вычислите 1+2+22+23+ ...+2 N. Примеры входные данные 1 выходные данные 3 входные данные 4 выходные данные 31
Ответы (1)
Выведите все натуральные делители числа x в порядке возрастания (включая 1 и само число). Входные данные Вводится натуральное число x Выходные данные Выведите все делители числа x Примеры входные данные 7 выходные данные 1 7 входные данные 21
Ответы (1)
На паскале Даны две строки. Определите, является ли первая строка подстрокой второй строки. Входные данные На вход подается 2 строки длины не более 10000, состоящие только из маленьких букв латинского алфавита.
Ответы (2)