📄 match.pas
字号:
program match(input,output);
const maxn=100;
var
i,j,k,n,s:integer;
heap:array[1..maxn] of integer;
b:array[1..maxn,0..15] of integer;
sum,temp:array[0..15] of integer;
begin
assign(input,'match.in');
assign(output,'match.out');
reset(input);
rewrite(output);
readln(n);
for i:=1 to n do read(heap[i]);
for i:=0 to 15 do sum[i]:=0;
for i:=1 to n do
for j:=0 to 15 do b[i,j]:=0;
for i:=1 to n do
begin
k:=heap[i];j:=0;
while k<>0 do begin b[i,j]:=k mod 2; k:=k div 2; j:=j+1 end;
end;
for i:=1 to n do
for j:=0 to 15 do sum[j]:=sum[j]+b[i,j];
for j:=0 to 15 do sum[j]:=sum[j] mod 2;
s:=0;
for j:=0 to 15 do s:=s+sum[j];
if s=0
then writeln('lose')
else begin
j:=15;
while sum[j]=0 do j:=j-1;
i:=1;
while b[i,j]=0 do i:=i+1;
for j:=0 to 15 do temp[j]:=(b[i,j]+sum[j]) mod 2;
k:=0;
for j:=15 downto 0 do k:=k*2+temp[j];
k:=heap[i]-k;heap[i]:=heap[i]-k;
write(k,' ');
writeln(i);
for i:=1 to n do write(heap[i],' ');
writeln
end;
close(input);
close(output)
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -