/*
ЗАДАЧА 4
На вход: строка из цифр.
Вывод: строка, содержащая в себе самую длинную строго возрастающую последовательность цифр
ПРИМЕР:
Ввод: 121013451
Вывод: 1345
АВТОР
Tg: @ninemisha9 (по всем вопросам)
отблагодарить: 2200701041152627 т-банк
*/
#include <stdio.h>
#include <string.h>
#define LEN 1000
void max_ints_line(char *str, char *res){
str[--len] = '\0';
/*
пиздец как важно !!!!!!!!!!!
fgets считывает строку с \n (когда мы нажимаем enter в конец строки добавляется \n)
поэтому перемещаем \0 на один индекс назад (на место \n) и сокращаем len на 1
после fgets получаем: текст\n\0
поэтому => текст\0 (пермещаем \0 на место \n)
*/
int maxLength = 0; // переменная для записи максимальной длины подстроки с возрастающими цифрами
int currentLength = 1; // длина текущей подстроки с возрастающими цифрами (как минимум 1 цифра по итогу будет)
int maxStartIndex = 0; // индекс начала подстроки с возрастающими цифрами (с максимальной длиной)
int currentStartIndex = 0; // индекс начала подстроки с возрастающими цифрами
for (int i = 1; i < len; i++) { // начинаем со второй цифры
if (str[i] > str[i - 1]){ // если текущая цифра больше предыдущей
currentLength++; // увеличиваем счетчик возрастающих цифр подряд
if (currentLength > maxLength){ // если длина текущей строки больше максимальной длины
maxLength = currentLength; // обновляем переменные для максимальной подстроки (с какого индекса началась и какая длина у нее)
maxStartIndex = currentStartIndex;
}
}
else{
currentLength = 1; // если текущая цифра меньше предыдущей или равна ей, то обнуляем переменные для текущей подстроки
currentStartIndex = i;
}
}
int i2 = 0;
for(int i = maxStartIndex; i < maxLength; i++){
res[i2++] = str[i];
}
res[i2] = '\0';
/*
strncpy(res, str + maxStartIndex, maxLength);
res[maxLength] = '\0';
*/
}
int main() {
char str_ints[LEN];
char res[LEN];
fgets(str_ints
, LEN
, stdin
);
max_ints_line(str_ints, res);
}
LyoKCgrQl9CQ0JTQkNCn0JAgNAoKCiDQndCwINCy0YXQvtC0OiDRgdGC0YDQvtC60LAg0LjQtyDRhtC40YTRgC4KINCS0YvQstC+0LQ6INGB0YLRgNC+0LrQsCwg0YHQvtC00LXRgNC20LDRidCw0Y8g0LIg0YHQtdCx0LUg0YHQsNC80YPRjiDQtNC70LjQvdC90YPRjiDRgdGC0YDQvtCz0L4g0LLQvtC30YDQsNGB0YLQsNGO0YnRg9GOINC/0L7RgdC70LXQtNC+0LLQsNGC0LXQu9GM0L3QvtGB0YLRjCDRhtC40YTRgAoKINCf0KDQmNCc0JXQoDoKINCS0LLQvtC0OiAxMjEwMTM0NTEKINCS0YvQstC+0LQ6IDEzNDUKCgoK0JDQktCi0J7QoAoKVGc6IEBuaW5lbWlzaGE5ICjQv9C+INCy0YHQtdC8INCy0L7Qv9GA0L7RgdCw0LwpCtC+0YLQsdC70LDQs9C+0LTQsNGA0LjRgtGMOiAyMjAwNzAxMDQxMTUyNjI3INGCLdCx0LDQvdC6CgoqLwoKCgoKCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CgojZGVmaW5lIExFTiAxMDAwCgp2b2lkIG1heF9pbnRzX2xpbmUoY2hhciAqc3RyLCBjaGFyICpyZXMpewogICAgaW50IGxlbiA9IHN0cmxlbihzdHIpOwogICAgc3RyWy0tbGVuXSA9ICdcMCc7CgogICAgLyoKICAgINC/0LjQt9C00LXRhiDQutCw0Log0LLQsNC20L3QviAhISEhISEhISEhIQoKICAgIGZnZXRzINGB0YfQuNGC0YvQstCw0LXRgiDRgdGC0YDQvtC60YMg0YEgXG4gKNC60L7Qs9C00LAg0LzRiyDQvdCw0LbQuNC80LDQtdC8IGVudGVyINCyINC60L7QvdC10YYg0YHRgtGA0L7QutC4INC00L7QsdCw0LLQu9GP0LXRgtGB0Y8gXG4pCiAgICDQv9C+0Y3RgtC+0LzRgyDQv9C10YDQtdC80LXRidCw0LXQvCBcMCDQvdCwINC+0LTQuNC9INC40L3QtNC10LrRgSDQvdCw0LfQsNC0ICjQvdCwINC80LXRgdGC0L4gXG4pINC4INGB0L7QutGA0LDRidCw0LXQvCBsZW4g0L3QsCAxCgogICAg0L/QvtGB0LvQtSBmZ2V0cyDQv9C+0LvRg9GH0LDQtdC8OiDRgtC10LrRgdGCXG5cMAogICAg0L/QvtGN0YLQvtC80YMgPT4g0YLQtdC60YHRglwwICAo0L/QtdGA0LzQtdGJ0LDQtdC8IFwwINC90LAg0LzQtdGB0YLQviBcbikKICAgIAogICAgKi8KCgogICAgaW50IG1heExlbmd0aCA9IDA7ICAvLyDQv9C10YDQtdC80LXQvdC90LDRjyDQtNC70Y8g0LfQsNC/0LjRgdC4INC80LDQutGB0LjQvNCw0LvRjNC90L7QuSDQtNC70LjQvdGLINC/0L7QtNGB0YLRgNC+0LrQuCDRgSDQstC+0LfRgNCw0YHRgtCw0Y7RidC40LzQuCDRhtC40YTRgNCw0LzQuAogICAgaW50IGN1cnJlbnRMZW5ndGggPSAxOyAvLyDQtNC70LjQvdCwINGC0LXQutGD0YnQtdC5INC/0L7QtNGB0YLRgNC+0LrQuCDRgSDQstC+0LfRgNCw0YHRgtCw0Y7RidC40LzQuCDRhtC40YTRgNCw0LzQuCAo0LrQsNC6INC80LjQvdC40LzRg9C8IDEg0YbQuNGE0YDQsCDQv9C+INC40YLQvtCz0YMg0LHRg9C00LXRgikKICAgIGludCBtYXhTdGFydEluZGV4ID0gMDsgLy8g0LjQvdC00LXQutGBINC90LDRh9Cw0LvQsCDQv9C+0LTRgdGC0YDQvtC60Lgg0YEg0LLQvtC30YDQsNGB0YLQsNGO0YnQuNC80Lgg0YbQuNGE0YDQsNC80LggKNGBINC80LDQutGB0LjQvNCw0LvRjNC90L7QuSDQtNC70LjQvdC+0LkpCiAgICBpbnQgY3VycmVudFN0YXJ0SW5kZXggPSAwOyAvLyDQuNC90LTQtdC60YEg0L3QsNGH0LDQu9CwINC/0L7QtNGB0YLRgNC+0LrQuCDRgSDQstC+0LfRgNCw0YHRgtCw0Y7RidC40LzQuCDRhtC40YTRgNCw0LzQuAoKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuOyBpKyspIHsgIC8vINC90LDRh9C40L3QsNC10Lwg0YHQviDQstGC0L7RgNC+0Lkg0YbQuNGE0YDRiwoKICAgICAgICBpZiAoc3RyW2ldID4gc3RyW2kgLSAxXSl7IC8vINC10YHQu9C4INGC0LXQutGD0YnQsNGPINGG0LjRhNGA0LAg0LHQvtC70YzRiNC1INC/0YDQtdC00YvQtNGD0YnQtdC5CgogICAgICAgICAgICBjdXJyZW50TGVuZ3RoKys7IC8vINGD0LLQtdC70LjRh9C40LLQsNC10Lwg0YHRh9C10YLRh9C40Log0LLQvtC30YDQsNGB0YLQsNGO0YnQuNGFINGG0LjRhNGAINC/0L7QtNGA0Y/QtCAKCiAgICAgICAgICAgIGlmIChjdXJyZW50TGVuZ3RoID4gbWF4TGVuZ3RoKXsgLy8g0LXRgdC70Lgg0LTQu9C40L3QsCDRgtC10LrRg9GJ0LXQuSDRgdGC0YDQvtC60Lgg0LHQvtC70YzRiNC1INC80LDQutGB0LjQvNCw0LvRjNC90L7QuSDQtNC70LjQvdGLCiAgICAgICAgICAgICAgICBtYXhMZW5ndGggPSBjdXJyZW50TGVuZ3RoOyAgLy8g0L7QsdC90L7QstC70Y/QtdC8INC/0LXRgNC10LzQtdC90L3Ri9C1INC00LvRjyDQvNCw0LrRgdC40LzQsNC70YzQvdC+0Lkg0L/QvtC00YHRgtGA0L7QutC4ICjRgSDQutCw0LrQvtCz0L4g0LjQvdC00LXQutGB0LAg0L3QsNGH0LDQu9Cw0YHRjCDQuCDQutCw0LrQsNGPINC00LvQuNC90LAg0YMg0L3QtdC1KQogICAgICAgICAgICAgICAgbWF4U3RhcnRJbmRleCA9IGN1cnJlbnRTdGFydEluZGV4OwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGN1cnJlbnRMZW5ndGggPSAxOyAgLy8g0LXRgdC70Lgg0YLQtdC60YPRidCw0Y8g0YbQuNGE0YDQsCDQvNC10L3RjNGI0LUg0L/RgNC10LTRi9C00YPRidC10Lkg0LjQu9C4INGA0LDQstC90LAg0LXQuSwg0YLQviDQvtCx0L3Rg9C70Y/QtdC8INC/0LXRgNC10LzQtdC90L3Ri9C1INC00LvRjyDRgtC10LrRg9GJ0LXQuSDQv9C+0LTRgdGC0YDQvtC60LgKICAgICAgICAgICAgY3VycmVudFN0YXJ0SW5kZXggPSBpOwogICAgICAgIH0KICAgIH0KCgogICAgCiAgICBpbnQgaTIgPSAwOwoKICAgIGZvcihpbnQgaSA9IG1heFN0YXJ0SW5kZXg7IGkgPCBtYXhMZW5ndGg7IGkrKyl7CiAgICAgICAgcmVzW2kyKytdID0gc3RyW2ldOwoKICAgIH0KCiAgICByZXNbaTJdID0gJ1wwJzsKICAgIAogICAgLyoKICAgIHN0cm5jcHkocmVzLCBzdHIgKyBtYXhTdGFydEluZGV4LCBtYXhMZW5ndGgpOyAKCgogICAgcmVzW21heExlbmd0aF0gPSAnXDAnOwoKICAgICovCgoKCn0KCmludCBtYWluKCkgewogICAgY2hhciBzdHJfaW50c1tMRU5dOwogICAgY2hhciByZXNbTEVOXTsKCiAgICBmZ2V0cyhzdHJfaW50cywgTEVOLCBzdGRpbik7CgogICAgbWF4X2ludHNfbGluZShzdHJfaW50cywgcmVzKTsKCiAgICBwcmludGYoIiVzXG4iLCByZXMpOwoKCn0KCgo=