农夫约翰的奶牛通常是按1到N进行编号的,奶牛们相互之间有一种特殊的信息传输方式。
答案:1 悬赏:50 手机版
解决时间 2021-11-24 08:12
- 提问者网友:献世佛
- 2021-11-23 15:16
农夫约翰的奶牛通常是按1到N进行编号的,奶牛们相互之间有一种特殊的信息传输方式。
最佳答案
- 五星知识达人网友:西岸风
- 2021-11-23 16:50
var n:longint;
a:array[1..1000] of longint;
b:array[1..1000] of boolean;
procedure init;
var i:longint;
begin
readln(n);
for i:=1 to n do
readln(a[i]);
end;
procedure work;
var i,j:longint;
bz:array[0..1000] of boolean;
begin
for i:=1 to n do
begin
j:=i;
fillchar(bz,sizeof(bz),0);
while j>0 do
begin
if bz[j] then
begin
bz[0]:=true;
break;
end;
bz[j]:=true;
j:=a[j];
end;
if bz[0] then
for j:=1 to n do
if bz[j] then b[j]:=true;
end;
end;
procedure out;
var i,ans:longint;
begin
ans:=n;
for i:=1 to n do
if b[i] then dec(ans);
writeln(ans);
end;
begin
assign(input,'relay.in');reset(input);
assign(output,'relay.out');rewrite(output);
init;
work;
out;
close(input);close(output);
end.
a:array[1..1000] of longint;
b:array[1..1000] of boolean;
procedure init;
var i:longint;
begin
readln(n);
for i:=1 to n do
readln(a[i]);
end;
procedure work;
var i,j:longint;
bz:array[0..1000] of boolean;
begin
for i:=1 to n do
begin
j:=i;
fillchar(bz,sizeof(bz),0);
while j>0 do
begin
if bz[j] then
begin
bz[0]:=true;
break;
end;
bz[j]:=true;
j:=a[j];
end;
if bz[0] then
for j:=1 to n do
if bz[j] then b[j]:=true;
end;
end;
procedure out;
var i,ans:longint;
begin
ans:=n;
for i:=1 to n do
if b[i] then dec(ans);
writeln(ans);
end;
begin
assign(input,'relay.in');reset(input);
assign(output,'relay.out');rewrite(output);
init;
work;
out;
close(input);close(output);
end.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯