Program n1;
type z = array of integer;
var a: z;
i,n,x,j,buf: integer;
f: text;
begin
randomize;
assign(f,'input.txt');
reset(f);
n:=0;
readln(f,x);
setlength(a,x);
while not eof(f) do
begin
read(f,a[n]);
n:=n+1;
end;
close(f);
for i:=0 to n-2 do
for j:=i+1 to n-1 do
if a[i]>a[j] then begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
assign(f,'output.txt');
rewrite(f);
for i:=0 to x-1 do write(f,a[i],' ');
close(f);
end.
Расуждаем так. Обозначим n - количество использованных двоек. Если бы мистер Фокс использовал n=1 двойку, то получил бы число 3. При n=2 получаем 7, и т.д. Запишем в столбик:
![n=1\ \ \ a_{1}=3](https://tex.z-dn.net/?f=n%3D1%5C+%5C+%5C+a_%7B1%7D%3D3)
![n=2\ \ \ a_{2}=2a_{1}+1=7](https://tex.z-dn.net/?f=n%3D2%5C+%5C+%5C+a_%7B2%7D%3D2a_%7B1%7D%2B1%3D7)
![n=3\ \ \ a_{3}=2a_{2}+1=15](https://tex.z-dn.net/?f=n%3D3%5C+%5C+%5C+a_%7B3%7D%3D2a_%7B2%7D%2B1%3D15)
![n=4\ \ \ a_{4}=2a_{3}+1=31](https://tex.z-dn.net/?f=n%3D4%5C+%5C+%5C+a_%7B4%7D%3D2a_%7B3%7D%2B1%3D31)
Замечаем, что
![3=4-1=2^{2}-1=2^{n+1}-1](https://tex.z-dn.net/?f=3%3D4-1%3D2%5E%7B2%7D-1%3D2%5E%7Bn%2B1%7D-1)
![7=8-1=2^{3}-1=2^{n+1}-1](https://tex.z-dn.net/?f=7%3D8-1%3D2%5E%7B3%7D-1%3D2%5E%7Bn%2B1%7D-1)
![15=16-1=2^{4}-1=2^{n+1}-1](https://tex.z-dn.net/?f=15%3D16-1%3D2%5E%7B4%7D-1%3D2%5E%7Bn%2B1%7D-1)
![31=32-1=2^{5}-1=2^{n+1}-1](https://tex.z-dn.net/?f=31%3D32-1%3D2%5E%7B5%7D-1%3D2%5E%7Bn%2B1%7D-1)
То есть при n=2017 выражение будет равно ![2^{n+1}-1=2^{2018}-1](https://tex.z-dn.net/?f=2%5E%7Bn%2B1%7D-1%3D2%5E%7B2018%7D-1)
В двоичном виде число
- это единица и 2018 нулей. Если вычесть из такого числа единицу, получим число, состоящее из 2018 единиц.
Ответ: 2018
Start(в овале)>1>Ввод пароля(в параллелограмме)>
>Если пароль==Твой пароль(тут ромб)>да>Конец(в овале)
>нет>(тут стрелка к единице)