Pawo
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору blondenet Цитата: Дана последовательность из N (1 ≤ N ≤ 100000) целых чисел и число K (|K| ≤ 100000). Сдвинуть всю последовательность на |K| элементов вправо, если K – положительное и влево, если отрицательное. В первой строке дано натуральное число N, во второй строке – N целых чисел, а в последней – целое число K. Все числа во входных данных не превышают 10 в 9степени. Требуется вывести полученную последовательность. | Как сделать с пределом до 100000 не знаю Пока вижу такой вариант: Код: const infile='INPUT.TXT'; outfile='OUTPUT.TXT'; var N,K,i,t:longint; A:array[1..30000]of integer; f:text; begin assign(f,infile); reset(f); readln(f,N,K); for i:=1 to N do read(f,a[i]); close(f); assign(f,outfile); rewrite(f); for i:=1 to N do begin t:=i-K; if t>N then t:=t mod N; while t<1 do t:=N+t; {исправление ошибки, если K>N} if i<>n then write(f,a[t],' ') else writeln(f,a[t]); end; close(f); end. | Ну или в Дельфях сделать А вообще, это не похоже на задачу для 10 класса. Добавлено: blondenet Цитата: В первой строке дано натуральное число N, во второй строке – N чисел, причём одинаковых чисел нет. Все числа во входных данных не превышают 10 в 9степени. Требуется напечатать номер наиболее близкого к целому. | А что делать, если есть несколько целых чисел? Или несколько чисел, которые одинаково близки к целым? | Всего записей: 1105 | Зарегистр. 05-05-2007 | Отправлено: 22:41 26-03-2010 | Исправлено: Pawo, 18:54 27-03-2010 |
|