Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу по С++!Срочно!

Иван Богров Ученик (178), открыт 2 недели назад
Дана последовательность целых чисел. Требуется вычислить максимальную длину участка из подряд идущих элементов последовательности вида 1, 2, 3, ..., k.

Формат ввода
Во входном файле записаны через пробел члены последовательности в количестве не менее 1 и не более 107. Члены последовательности – целые числа, по модулю не превосходящие 109.

Формат вывода
В выходной файл требуется вывести единственное число − ответ в задаче (если участка указанного вида не существует, то ответ – 0).


НУЖНО НАПИСАТЬ БЕЗ МАССИВОВ.ТОЛЬКО ЦИКЛЫ И IFы .Ломаю голову уже час,не знаю как решить.
2 ответа
nixniy rusemp Профи (516) 2 недели назад
def max_consecutive_sequence_length(sequence):
max_length = 0
current_length = 0
expected_number = 1 # ожидаем следующее число в последовательности

for num in sequence:
if num == expected_number:
current_length += 1
expected_number += 1
elif num == 1:
# если встретили 1, это начало новой последовательности
current_length = 1
expected_number = 2 # ожидаем следующее число
else:
# сброс длины текущей последовательности
current_length = 0
expected_number = 1 # начинаем заново с 1

# обновляем максимальную длину последовательности
max_length = max(max_length, current_length)

return max_length

if __name__ == "__main__":
import sys
input_data = sys.stdin.read ().strip() # чтение данных
sequence = list(map(int, input_data.split())) # преобразование в список целых чисел
result = max_consecutive_sequence_length(sequence)
print(result) # вывод результата
Иван БогровУченик (178) 2 недели назад
нужно чуть другое,намного проще
Krab Bark Искусственный Интеллект (294629) Иван Богров, ИИ трудился, написал тебе какую-то чушь на другом языке, а ты еще и недоволен ;)
Krab BarkИскусственный Интеллект (294629) 2 недели назад
А как писать, тебе написали в предыдущем твоем вопросе, тоько замени в том ответе слово массив на слово файл :)
Екатерина СавосинаУченик (234) 1 неделю назад
иван сам решай. Не зря же ходишь к Светлане Александровне
kaiu Высший разум (117660) 2 недели назад
7 класс пишешь, но тут с++ мол. Ну и подобные задачи под систему решают, там файл IN и OUT вроде и др...вам там лучше известно.
А решить если просто из файла in.txt прочитать:
 #include <iostream> 
#include <fstream>

using namespace std;

int main(int argc, char** argv)
{
ifstream fin("in.txt");
int x, xp, n=0, nmax=0;

while( fin >> x )
{
if( n == 0 || x - xp == 1 )
{
n++;
}
else
{
if( n > nmax ) nmax = n;
n = 1;
}
xp = x;
}

if( n > nmax ) nmax = n;

fin.close();

cout << nmax;
return 0;
}
Похожие вопросы