20
путешествуя по миру, в одной из глубоких горных шахт ньют саламандер обнаружил неизвестный науке ранее вид нюхлей, отличающихся от обычных специфической формой усов. эти зверьки
обладали удивительным свойством: они жили под землей большими семьями и большую часть жизни проводили в спячке, просыпаясь по весне и засыпая снова в конце лета. найдя их, ньют пришёл
в неописуемый восторг и решил непременно забрать с собой несколько особей для дальнейшего их
изучения. к его счастью, на дворе стоял ноябрь, и поэтому все зверьки глубоко спали.
изучив внутренние помещения своего волшебного сундука, ньют обнаружил в нём квадратную грядку со стороной n. путем некоторых сложных вычислений он выяснил, что максимальное
количество нюхлей, которым будет комфортно одновременно спать в этой грядке, также равно n.
единственной проблемой для ньюта стал тот факт, что во время транспортировки кто-то из нюхлей может неожиданно проснуться. специфическая форма усов создавала телепатическую связь
между нюхлями из одной семьи, и поэтому если просыпается один нюхль, то просыпается и всё
семейство. чтобы избежать путаницы, волшебник решил отвести для каждого семейства минимальную по площади связную часть грядки такую, чтобы каждый нюхль занимал квадрат со стороной
1. напомним, что связной частью грядки называется такой набор клеток, что от любой его клетки
можно добраться до любой другой, перемещаясь каждый раз в соседнюю по стороне клетку и не
выходя за пределы этого набора.
проснувшись, нюхль сразу начинает копать грядку в одном из четырёх направлений, параллельных сторонам грядки. направление он выбирает абсолютно случайно. если вдруг нюхль из одного
семейства наткнётся на норку, изначально предназначенную для сна нюхля из другого семейства,
то между ними произойдёт конфликт, результатом которого станет разрушение всей грядки.
ньюту разместить всех нюхлей на грядке так, чтобы для каждого семейства была
отведена минимальная по площади связная часть грядки, и чтобы даже если все зверьки проснутся
и начнут копать, нюхли разных семейств ни в коем случае не натыкались на норки друг друга.
формат входных данных
первая строка входных данных содержит единственное число n — сторона грядки и количество
зверьков (1 ⩽ n ⩽ 10^5)
вторая строка содержит n чисел ai — семейство, к которому относится i-й зверёк (1 ⩽ ai ⩽ n).
формат выходных данных
выведите n строк, содержащих по два целых числа xi и yi — координаты того квадрата грядки,
в который следует положить i-го зверька.
гарантируется, что такое размещение нюхлей всегда существует.
пример
стандартный ввод
3
2 1 2
стандартный вывод
2 2
1 1
2 3
1)
var
a: 100..999;
a1, a2, a3: 0..9; //а1 - сотни, а2 - десятки, а3 - единицы
begin
writeln('введите натуральное трехзначное число');
readln(a);
a1: = a div 100;
a2: = (a mod 100) div 10;
a3: = a mod 10;
writeln('полученное число: ', a1, a3, a2);
end.
2)
var
a: 100..999;
a1, a2, a3: 0..9;
begin
writeln('введите натуральное трехзначное число');
readln(a);
a1: = a div 100;
a2: = (a mod 100) div 10;
a3: = a mod 10;
writeln('полученное число: ', a2, a1, a3);
end.
3)
var
a: 100..999;
a1, a2, a3: 0..9;
begin
writeln('введите натуральное трехзначное число');
readln(a);
a1: = a div 100;
a2: = (a mod 100) div 10;
a3: = a mod 10;
writeln('полученное число: ', a3, a1, a2, a3);
end.
4)
var
a: 1000..9999;
a1, a2, a3, a4: 0..9;
begin
writeln('введите натуральное четырехзначное число');
readln(a);
a1: = a div 1000; //тысячи
a2: = (a mod 1000) div 100; //сотни
a3: = (a mod 100) div 10; //десятки
a4: = a mod 10; //единицы
writeln('полученное число: ', a4, a3, a2, a1);
end.
все остальное делается наподобие этого: просто в writeln меняешь местами цифры и все.
var
a: array[1..1000] of real;
i, k, n, z: integer;
begin
writeln('введите число n: ');
readln(n);
writeln('введите число z: ');
readln(z);
writeln('введите ',n,' действительных чисел (каждое с новой строки): ');
for i : = 1 to n do
begin
readln(a[i]);
if a[i] > z then
begin
a[i] : = z;
k : = k + 1;
end;
end;
writeln('количество замен: ', k);
end.