ЦІКАВИЙ ПОЛІТ "Летіти в подорож на одну планету – це досить нудно”, – подумала Элен і прийняла рішення завітати й до інших цікавих планет. Всі інопланетяни знають, що будь-яка планета має таку характеристику як привабливість. Звісно, коли планувала мандрівку Элен обирала най-найпривабливішу планету. А Эдик, як завжди, склав список з N планет, повз які вони будуть пролітати, та розташував їх у порядку огляду. Але виявилось, що не все так просто. Справа у тому, що задля найкращих вражень від подорожі потрібно відвідати максимальну кількість планет, ще й відвідувати їх слід лише по неспадаючій їх привабливості. До того ж, слід обирати для відвідування такі планети, привабливість яких строго більше ніж X (за проханням Эльберта). Оскільки, жоден з інопланетян неспроможний обрати таку послідовність планет, щоб їх подорож була ідеальною, то вони попросили вас зробити це. Вхідні дані: В першому рядку дано два числа N та X – кількість планет у списку Эдика та поріг привабливості планет за думкою Эльберта, відповідно. В другому рядку задано N цілих чисел ai, де ai – привабливість i-ої планети. 1 <= N <= 1e5, -1e9 <= X <= 1e9, -1e9 <= ai <= 1e9. Вихідні дані: В першому рядку виведіть максимальну кількість планет, яку зможуть відвідати інопланетяни. В другому рядку виведіть індекси цих планет (зі списку Эдика). Якщо таких послідовностей декілька – виведіть будь-яку. Якщо інопланетяни не зможуть відвідати жодної планети, то виведіть -1.
Приклад:
Вхідні дані Вихідні дані
4 1 2
1 3 2 5 3 4
1.if условие then команды end
Объяснение:
2.if условие then команды1 else команды2 end
if условие1
then команды1
else if условие2 then команды2
else if условие3 then команды3
...
else if условиеN+1 then командыN+1
else команды end;
3.if условие1 then команды1
elsif условие2 then команды2
elsif условие3 then команды3
...
4.else команды end;
5.If условие
then
begin
операторы;
end
else
begin
операторы;
end;
6.if условие
...
fi;
//Максимальная длина вводимой строки#define Mx_s 255
//Массив символов, которые //необходиом удалить в начале и конце строкиchar sim[] = { '\t', ' '};//Функция проверяющая входит ли данный символ c в массив simint char_in_arr(char c) { int f = 0; for (int i = 0; i < strlen(sim); i++) { if (c == sim[i]) { f = 1; break; } } return f;}
int main(){ setlocale(LC_ALL, "rus"); //Вводимая строка char s[Mx_s]; //Ввод данных printf("\n >> Введите строку\n <<"); fgets(s, Mx_s, stdin); int l = strlen(s) - 1; //Переменные для определения отсечений в начале и конце строки int pos_b = 0; int pos_e = l-1; //Проверяем начало строки //Если нам попадаются удаляемые символы то увеличиваем значение pos_b for (;(pos_b < l) && char_in_arr(s[pos_b]); pos_b++) {}
//Проверяем конец строки //Если нам попадаются удаляемые символы то уменьшаем значение pos_e for (;(pos_e >= 0) && (char_in_arr(s[pos_e])); pos_e--) {}
//Длина отсеченного отрезка int l2 = pos_e - pos_b + 1; //Если длина корректа то if (l2 > 0) { //Строка для результата char s2[Mx_s];
//Идем по строке s1 int pos = 0; for (int i = pos_b, k_s = 0; i <= pos_e; i++) { //Считаем пробелы, идущие подряд if (s[i] == ' ') k_s++; else k_s = 0;
//Если это не подряд идущие пробел if (k_s < 2) { //записываем символ в s2 s2[pos] = s[i]; pos++; } } s2[pos] = '\0';
//Вывод результат printf("\n >> Результат\n <<"); fputs(s2,stdout); } else //Строка пуста/Содержит только символы из массива sim printf("\n >> Ошибка в строке\n");
system("pause>>void"); return 0;}