比赛 |
20130729 |
评测结果 |
AAAAAAAATA |
题目名称 |
奶牛的糖果 |
最终得分 |
90 |
用户昵称 |
农场主 |
运行时间 |
1.365 s |
代码语言 |
Pascal |
内存使用 |
1.31 MiB |
提交时间 |
2014-07-17 09:36:55 |
显示代码纯文本
- var
- c,d,n:longint;
- a,b,ans:array[1..100000]of longint;
-
- procedure treat(w:longint);
- var
- i,j:longint;
- begin
- i:=w;
- while b[a[i]]<>c do
- begin
- b[a[i]]:=c;
- i:=a[i];
- inc(ans[c]);
- end;
- i:=a[i];
- j:=w;
- while j<>i do
- begin
- ans[a[j]]:=ans[j]-1;
- j:=a[j];
- end;
- j:=a[j];
- while j<>i do
- begin
- ans[j]:=ans[i];
- j:=a[j];
- end;
- end;
-
- begin
- assign(input,'treat.in');
- assign(output,'treat.out');
- reset(input);
- rewrite(output);
-
- read(n);
- for c:=1 to n do
- read(a[c]);
-
- for c:=1 to n do
- if ans[c]=0 then
- begin
- ans[c]:=1;
- b[c]:=c;
- treat(c);
- end;
-
- for c:=1 to n do
- writeln(ans[c]);
- close(input);close(output);
- end.