Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Iluha_programis
0 / 0 / 0
Регистрация: 30.10.2016
Сообщений: 7
1

Перестановка названий песен

30.10.2016, 22:00. Просмотров 262. Ответов 0
Метки нет (Все метки)

Все стало на свои места в Уэльсе, война закончилась, и для поднятия настроения, в село
Лланвайрпуллгвнгллгогерихурндробуллллантисилогогогох приехал DJ с самым длинным
именем на планете: Adolph Blaine Charles David Earl Frederick Gerald Hubert Irvim John
Kenneth Martin Nero Oliver Paul Randolph Sherman Thomas Uncas Victor Willian Xerxes
Yancy Zeus. Он гордится своим именем, потому и взял его как свое диджейское прозвище.
Этот DJ известен не только своим именем, но еще и необычным порядком проигрывания
треков. Пусть ему доступно N треков. Сначала он помечает каждый из треков некоторой
буквой от A до Z, причем i-й трек будет обозначен i-м символом последовательности
AB…Z. После этого последовательность символов, соответствующая трекам, которые
будут проигрываться, строится так: сначала идут все возможные слова из одной буквы в
лексикографическом порядке, затем все слова из двух букв в лексикографическом порядке,
и так далее. Поэтому, если N = 3, то последовательность треков будет следующей:
ABCAAABACBABBBCCACBCCAAAAABAACABAABBABC...
После завершения вечеринки некоторые из посетителей спросили у DJ название трека,
который был проигран j-м. DJ нужно помнить свое имя, поэтому он не хочет запоминать
лишнюю информацию. Пожалуйста, напишите для него программу, которая по номеру в
проигранной последовательности треков будет определять название трека.
Формат входного файла
В первой строке входного файла находятся два числа N и Q - количество треков у DJ, и
количество запросов от посетителей соответственно. В следующей строке записаны N
названий треков (каждое из которых состоит минимум из 1 и максимум из 100 символов,
каждый из которых является либо цифрой, либо буквой латинского алфавита),
разделенных одним пробелом. Последняя строка содержит последовательность запросов,
каждый из которых – одно целое число - номер запрошенного трека.
Формат выходного файла
Для каждого запроса выведите отдельную строку – имя трека с соответствующим
порядковым номером в проигранной последовательности треков.

Добавлено через 22 секунды
Вот мой код




C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream> 
#include <algorithm> 
#include <string> 
using namespace std; 
 
 
int GetNumber(char* s){ // ввод целого значения с комментарием 
int n; 
cout « s; 
cin » n; 
 
return n; 
} 
 
// ввод строки i 
string GetText(int i){ 
string s; 
cout « "Please " « (i + 1) « " string: "; 
cin » s; 
return s; 
} 
 
// вывод строки c номером i и текстовым комментарием 
void ShowString(char* com, int i,string s){ 
cout « com « (i + 1) « " : "« s « endl; 
} 
 
void lex() { 
 
string* s; // объявили указатель на множество объектов string 
 
int n = GetNumber("All strings please:"); 
// объявили идентификатор n - назначение количество string в множестве 
s = new(string[n]); // выделили память под множество строк 
 
 
for(int i=0;i<n;i++) { // пошли по множеству 
s[i] = GetText(i); // ввели строку записали в i-ый элемент множества 
ShowString("String ", i, s[i]); // показали строку i 
//sort(s[i].begin(), s[i].end()); // выполнили сортировку 
} 
 
for(int i=0;i<n-1;i++) { // пошли по множеству 
int q; 
cin » q; 
int count = 0; // инициализация счетчика перестановок 
 
do { 
 
ShowString("Permutation N", (q++), s[i]); // показали очередную перестановку 
} 
while (next_permutation(s[i].begin(), s[i++].end())); //перестанока 
 
} 
} 
 
 
 
int main() { 
 
lex(); 
 
system("pause"); 
return 0; 
}
Добавлено через 45 секунд
Подскажите ПОЖАЛУЙСТА. Нужно сделать так, что перемешивалось столько раз, сколько мы зададим.

Добавлено через 57 секунд
Цитата Сообщение от Iluha_programis Посмотреть сообщение
ShowString("Permutation N", (q++), s[i]); // показали очередную перестановку
}
while (next_permutation(s[i].begin(), s[i++].end())); //перестанока
Мне кажется, что проблема где-то тут. Но могу ошибаться.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2016, 22:00
Ответы с готовыми решениями:

Проигрыватель .mp3 песен через С++
Доброго времени суток! Решил попробовать написать программку которая позволила бы воспроизводить...

Используя STL контейнер создать каталог песен
помогите пожалуйста написать программу на С++. Буду очень благодарна) Текстовый файл содержит...

Структуры: посчитать количество выпущенных песен в указанный период лет
Поля структуры: имя исполнителя, название песни, год. Операция: посчитать количество выпущенных...

Чтение названий всех папок из папки "Profiles" и вывод этих названий в ListBox
Мне надо устроить выбор профиля для загрузки игры. Все файлы одного профиля хранятся в папке с...

Проигрыватель песен
Добрый день, мне нужна ваша помощь. Я хочу сделать чтобы у меня можно было слушать песни как...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2016, 22:00

Список песен
Домашнее задание 8.2 Список песен. В методе Main создать список из четырех песен. В цикле вывести...

Переключение песен vk
Хочу написать программу, которая будет переключать песни вконтакте нажатием какой-либо клавиши....

Список песен
Добрый день. Прошу помощи. Вот у меня есть форма, на ней кнопка: Выбор песни! Как мне сделать,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.