Сумма средних цифр может быть равна числу от 0 до 18 сумма крайних цифр может быть равна числу от 1 до 18 (т.к. ерайняя левая цифра не может быть равна нулю, потому тто в противном случае это было бы уже не 4х значное число. Например: 0123)
Так же получившиеся 2 новых числа не могут начинаться с нуля.
Порядок не убывания, значит второе число больше или равно первому.
число 101 могло быть составлено только из 10 и 1, но 1 < 10, значит они расположены в порядке убывания, это нам не подойдёт
20 составлено из 2 и 0, тоже порядок убывания, не подходит
312 составлен либо (3 и 12), либо (31 и 2), но наши два числа не могут быть больше 18 (т.к десятичные цифры от 0 до 9) Значит 312 составлен из 3 и 12 - подходит
Аналогично 1312 состоит из 12 и 13, подходит, т.к 13 >= 12 (пример исходного числа 6766)
А вот 1312 не подойдёт, т.к 12 < 13
1212 - подходит т.к. 12 >= 12 (пример исходного 6666)
112 - это либо 1 и 12, либо 11 и 2. Второй вариант отсекаем, первый подходит (например 1660)
сумма крайних цифр может быть равна числу от 1 до 18 (т.к. ерайняя левая цифра не может быть равна нулю, потому тто в противном случае это было бы уже не 4х значное число. Например: 0123)
Так же получившиеся 2 новых числа не могут начинаться с нуля.
Порядок не убывания, значит второе число больше или равно первому.
число 101 могло быть составлено только из 10 и 1, но 1 < 10, значит они расположены в порядке убывания, это нам не подойдёт
20 составлено из 2 и 0, тоже порядок убывания, не подходит
312 составлен либо (3 и 12), либо (31 и 2), но наши два числа не могут быть больше 18 (т.к десятичные цифры от 0 до 9) Значит 312 составлен из 3 и 12 - подходит
Аналогично 1312 состоит из 12 и 13, подходит, т.к 13 >= 12 (пример исходного числа 6766)
А вот 1312 не подойдёт, т.к 12 < 13
1212 - подходит т.к. 12 >= 12 (пример исходного 6666)
112 - это либо 1 и 12, либо 11 и 2. Второй вариант отсекаем, первый подходит (например 1660)
1012 - подходит
ответ: может получиться 5 чисел из приведенных
#include <string>
using namespace std;
int main()
{
string S;
cin >> S;
int Mass[52];
for (int i = 0; i < 52; i++)
{
Mass[i] = 0;
}
for (int i = 0; i < S.length(); i++)
{
char c = S[i];
if (c >= 'a'&&c <= 'z')
{
Mass[(int)(c-'a')*2]++;
} else if (c >= 'A'&&c <= 'Z'){
Mass[(int)(c-'A')*2+1]++;
}
}
for (int i = 0; i < 52; i++)
{
for (int j = 0; j < Mass[i]; j++)
{
cout << (i % 2 == 0?(char)(i/2+'a'):(char)(i/2+'A'));
}
}
return 0;
}
Пример работы программы: