var n:integer;
a:array[1..1000] of longint;
i,j:integer;
x:longint;
begin
assign(input,'input.txt');
assign(output,'output.txt');
reset(input);
rewrite(output);
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do write(a[i],' ');
writeln;
for i:=1 to n-1 do
for j:=i downto 1 do
if a[j+1]
begin
x:=a[j];
a[j]:=a[j+1];
a[j+1]:=x;
end;
for i:=1 to n do write(a[i],' ');
writeln;
write(a[1],' ');
for i:=1 to n-1 do write(a[i+1]-a[i],' ');
end.
|
Анализ и разбор задачи.Знания и умения.
Условие задачи:
Зональный тур олимпиады по информатике
за 2005 – 2006 учебный год
в г.Буинске Республики Татарстан.
Задача 1. Шифровка ( 20 баллов).
Секретный агент собирается передать информацию в виде последовательности натуральных чисел x1,x2, ... ,xn
Для расшифровки он образовал новую последовательность чисел
y1=x1, y2=x1+x2, ... , yn=x1+x2+, ... , +xn, в произвольном порядке
записал эти числа в файл и отправил шифровку в Центр.
Требуется составить программу, которая определяет
исходную последовательность чисел x1,x2, ... , xn.
INPUT.TXT
3
6 4 9
OUTPUT.TXT
4 2 3
Алгоритм
1)из входного файла input.txt считываем количество чисел и записываем их в массив
2)отсортируем по возрастанию
3)организуем разность последующего с предидущим
4)выводим последовательность чисел
Знать:
- оператор выбора "if <условие> then <оператор>"
- простейшую сортировку
Уметь:
- работать с входными и выходными файлами input.txt output.txt
|