Страница:
<< 70 71 72 73
74 75 76 >> [Всего задач: 21756]
Дан массив. Требуется удалить из него элемент, стоящий на месте номер B,
сдвинув все последующие элементы влево.
Входные данные
Во входном файле записано сначала число N - количество элементов массива
(2<=N<=100), затем N чисел из диапазона Integer - элементы массива,
а затем число B (1<=B<=N).
Выходные данные
В выходной файл выведите N-1 число - элементы массива с удаленным B-м элементом.
Примечание
Вы должны удалить элемент непосредственно из массива, а не сделать
вид при выводе данных, что у вас такого элемента нет. Также вы не
должны для этого заводить в программе дополнительный массив.
То есть ввод данных осуществляется следующим фрагментом:
read(fi,n);
for i:=1 to n do read(fi,a[i]);
read(fi,b);
А вывод - следующим:
for i:=1 to n-1 do write(fo,a[i],' ');
Необходимые фрагменты вы можете найти в файле P128.PAS
Пример входного файла
5
1 3 5 6 7
2
Пример выходного файла
1 5 6 7
Текст программы P128.PAS
const nmax=100;
var a:array[1..nmax] of integer;
n:integer;
i:integer;
b:integer;
fi,fo:text;
begin
assign(fi,'input.txt');
reset(fi);
assign(fo,'output.txt');
rewrite(fo);
read(fi,n);
for i:=1 to n do read(fi,a[i]);
read(fi,b);
{Вы должны писать здесь}
for i:=1 to n-1 do write(fo,a[i],' ');
close(fi);
close(fo);
end.
Дан массив. Требуется вставить в него на место номер B элемент, равный C,
сдвинув все последующие элементы (включая элемент, стоящий на B-ом месте)
вправо.
Входные данные
Во входном файле записано сначала число N - количество элементов массива
(2<=N<=100), затем N чисел из диапазона Integer - элементы массива,
затем число B (1<=B<=N) и число C (из диапазона Integer).
Выходные данные
В выходной файл выведите N+1 число - элементы массива с вставленным элементом.
Примечание
Вы должны вставить элемент непосредственно в массив, а не сделать
вид при выводе данных, что у вас появился такой элемент. Также вы не
должны для этого заводить в программе дополнительный массив.
То есть ввод данных осуществляется следующим фрагментом:
read(fi,n);
for i:=1 to n do read(fi,a[i]);
read(fi,b,c);
А вывод - следующим:
for i:=1 to n+1 do write(fo,a[i],' ');
Необходимые фрагменты вы можете найти в файле P129.PAS
Пример входного файла
5
1 3 5 6 7
2 10
Пример выходного файла
1 10 3 5 6 7
Текст программы P129.PAS
const nmax=100;
var a:array[1..nmax] of integer;
n:integer;
i:integer;
b,c:integer;
fi,fo:text;
begin
assign(fi,'input.txt');
reset(fi);
assign(fo,'output.txt');
rewrite(fo);
read(fi,n);
for i:=1 to n do read(fi,a[i]);
read(fi,b,c);
{Вы должны писать здесь}
for i:=1 to n+1 do write(fo,a[i],' ');
close(fi);
close(fo);
end.
В начальный момент в i-ом элементе массива записано
число i (всего N элементов).
Каждую секунду числа сдвигаются в следующую ячейку
(из i-ой в i+1-ую), а из N-ой - в первую.
Напечатать состояние массива через T секунд.
Во вхоном файле записаны два числа - N (1<=N<=100) и T (0<=T<=30000).
В выходной файл выведите N чисел - состояние массива через T секунд.
Пример входного файла
5 3
Пример выходного файла
3 4 5 1 2
Задача Иосифа Флавия
Существует легенда, что Иосиф Флавий - известный историк первого
века - выжил и стал известным благодаря математической одаренности.
В ходе иудейской войны он в составе отряда из 41 иудейского воина
был загнан римлянами в пещеру. Предпочитая самоубийство плену, воины решили
выстроиться в круг и последовательно убивать каждого третьего из
живых до тех пор, пока не останется ни одного человека.
Однако Иосиф наряду с одним из своих единомышленников счел подобный
конец бессмысленным - он быстро вычислил спасительные места
в порочном круге, на которые поставил себя и своего товарища.
И лишь поэтому мы знаем его историю.
В нашем варианте мы начнем с того,
что выстроим в круг N человек, пронумерованных числами от 1 до N,
и будем исключать каждого k-ого до тех пор, пока не уцелеет только
один человек. (Например, если N=10, k=3, то сначала умрет 3-й,
потом 6-й, затем 9-й, затем 2-й, затем 7-й, потом 1-й, потом 8-й,
за ним - 5-й, и потом 10-й. Таким образом, уцелеет 4-й.)
Задача: определить номер уцелевшего.
Входные данные: числа N и k вводятся из файла INPUT.TXT.
Ограничения: 1<=N<=500, 1<=k<=100.
Выходные данные: Программа должна выдавать номер уцелевшего человека
в файл OUTPUT.TXT.
Пример входного файла:
10 3
Пример выходного файла:
4
Задача "Троллейбусы"
Троллейбусы одного маршрута проходят через остановку
каждые k (1<=k<=500) минут. Известны времена прихода пассажиров
на эту остановку. Если пассажир приходит на остановку в
момент прихода троллейбуса, то он успевает уехать на нем.
Напишите программу, которая бы определяла, во сколько должен пройти
первый троллейбус (это время от 0 до k-1), чтобы:
1) Суммарное время ожидания троллейбуса для всех пассажиров было минимально.
2) Максимальное из времен ожидания троллейбуса было минимально.
Входные данные
Во входном файле INPUT.TXT записано сначала число k, затем - число N
(0<=N<=100000). Затем идет N чисел, задающих времена прихода пассажиров
на остановку. Каждое из этих чисел - целое от 0 до 100000.
Выходные данные
В выходной файл OUTPUT.TXT запишите два числа,
являющиеся ответами на первый и второй вопросы задачи соответственно.
Если решений несколько, выведите любое из них.
Пример файла INPUT.TXT
100 5
0 210 99 551 99
Пример файла OUTPUT.TXT
10
51
Страница:
<< 70 71 72 73
74 75 76 >> [Всего задач: 21756]