На шахматной доске размером N × N расставлено N шахматных ладей не бьющих друг друга, то есть на каждой вертикали и каждой горизонтали стоит ровно одна ладья. Шахматную доску повернули на 90° по часовой стрелке. Выведите получившуюся расстановку ладей.
Входные данные Первая строка входных данных содержит целое число N, 1 ≤ N ≤ 105 — размер доски. Следующие N строк содержат по одному числу от 1 до N, а именно, в i-й строке записано число ai — номер вертикали, в которой стоит ладья на i-й горизонтали. В этой задаче горизонтали нумеруются числами от 1 до N сверху вниз, вертикали нумеруются числами от 1 до N слева направо (см. рисунок).
Выходные данные Программа должна вывести N чисел — расстановку ладей после поворота в таком же формате.
Система оценивания Решение, правильно работающее только для случаев, когда N ≤ 5, будет оцениваться в
Решение, правильно работающее только для случаев, когда N ≤ 5, будет оцениваться в
Пример Ввод
Вывод
Пояснение
5 4 2 3 5 1
1 4 3 5 2
Пример соответствует рисункам. Первоначально ладьи стояли в столбцах 4, 2, 3, 5, 1 при перечислении их по строкам сверху вниз. После поворота ладьи стоят в столбцах 1, 4, 3, 5, 2.
begin Writeln('Год Запас рыбы,т. Улов,т'); zapas := perv_zapas; for year := 1 to 20 do begin zapas := zapas * (1 + percent / 100); if zapas - plan < 250 then ulov := zapas - 250 else ulov := plan; zapas := zapas - ulov; if ulov >= plan then Writeln(year:2, zapas:10:1, ulov:12:1) else Writeln(year:2, zapas:10:1, ulov:12:1, ' - меньше плана') end end.
Результат выполнения программы: Год Запас рыбы,т. Улов,т 1 950.0 180.0 2 893.5 180.0 3 829.7 180.0 4 757.5 180.0 5 676.0 180.0 6 583.9 180.0 7 479.8 180.0 8 362.1 180.0 9 250.0 159.2 - меньше плана 10 250.0 32.5 - меньше плана 11 250.0 32.5 - меньше плана 12 250.0 32.5 - меньше плана 13 250.0 32.5 - меньше плана 14 250.0 32.5 - меньше плана 15 250.0 32.5 - меньше плана 16 250.0 32.5 - меньше плана 17 250.0 32.5 - меньше плана 18 250.0 32.5 - меньше плана 19 250.0 32.5 - меньше плана 20 250.0 32.5 - меньше плана
Пусть a,b,c - стороны треугольника (и их длины). Условие существование треугольника:
Пусть а - наибольшая из сторон, тогда против нее будет лежать наибольший угол, который можно определить по теореме косинусов:
Текст программы приводится ниже. var a,b,c,t,cosA:real; begin Write('Введите длины сторон треугольника: '); Readln(a,b,c); if (a<b+c) and (b<a+c) and (c<a+b) then begin if a>b then begin if a<c then begin t:=a; a:=c; c:=t end end else if b>c then begin t:=a; a:=b; b:=t end else begin t:=a; a:=c; c:=t end; cosA:=(sqr(c)+sqr(b)-sqr(a))/(2*b*c); if cosA=0 then Writeln('Треугольник прямоугольный') else if cosA<0 then Writeln('Треугольник тупоугольный') else Writeln('Треугольник остроугольный') end else Writeln('Треугольник построить нельзя') end.
Тестовое решение: Введите длины сторон треугольника: 4 6.1 3.7 Треугольник тупоугольный
percent = 13.0;
limit = 250.0;
plan = 180.0;
perv_zapas = 1000.0;
var
year: integer;
zapas, ulov: real;
begin
Writeln('Год Запас рыбы,т. Улов,т');
zapas := perv_zapas;
for year := 1 to 20 do
begin
zapas := zapas * (1 + percent / 100);
if zapas - plan < 250 then ulov := zapas - 250
else ulov := plan;
zapas := zapas - ulov;
if ulov >= plan then Writeln(year:2, zapas:10:1, ulov:12:1)
else Writeln(year:2, zapas:10:1, ulov:12:1, ' - меньше плана')
end
end.
Результат выполнения программы:
Год Запас рыбы,т. Улов,т
1 950.0 180.0
2 893.5 180.0
3 829.7 180.0
4 757.5 180.0
5 676.0 180.0
6 583.9 180.0
7 479.8 180.0
8 362.1 180.0
9 250.0 159.2 - меньше плана
10 250.0 32.5 - меньше плана
11 250.0 32.5 - меньше плана
12 250.0 32.5 - меньше плана
13 250.0 32.5 - меньше плана
14 250.0 32.5 - меньше плана
15 250.0 32.5 - меньше плана
16 250.0 32.5 - меньше плана
17 250.0 32.5 - меньше плана
18 250.0 32.5 - меньше плана
19 250.0 32.5 - меньше плана
20 250.0 32.5 - меньше плана
Пусть а - наибольшая из сторон, тогда против нее будет лежать наибольший угол, который можно определить по теореме косинусов:
Текст программы приводится ниже.
var
a,b,c,t,cosA:real;
begin
Write('Введите длины сторон треугольника: '); Readln(a,b,c);
if (a<b+c) and (b<a+c) and (c<a+b) then
begin
if a>b then
begin
if a<c then begin t:=a; a:=c; c:=t end
end
else
if b>c then begin t:=a; a:=b; b:=t end
else begin t:=a; a:=c; c:=t end;
cosA:=(sqr(c)+sqr(b)-sqr(a))/(2*b*c);
if cosA=0 then Writeln('Треугольник прямоугольный')
else
if cosA<0 then Writeln('Треугольник тупоугольный')
else Writeln('Треугольник остроугольный')
end
else
Writeln('Треугольник построить нельзя')
end.
Тестовое решение:
Введите длины сторон треугольника: 4 6.1 3.7
Треугольник тупоугольный