比赛 20130729 评测结果 AAAAAAAATA
题目名称 奶牛的糖果 最终得分 90
用户昵称 农场主 运行时间 1.365 s
代码语言 Pascal 内存使用 1.31 MiB
提交时间 2014-07-17 09:36:55
显示代码纯文本
  1. var
  2. c,d,n:longint;
  3. a,b,ans:array[1..100000]of longint;
  4.  
  5. procedure treat(w:longint);
  6. var
  7. i,j:longint;
  8. begin
  9. i:=w;
  10. while b[a[i]]<>c do
  11. begin
  12. b[a[i]]:=c;
  13. i:=a[i];
  14. inc(ans[c]);
  15. end;
  16. i:=a[i];
  17. j:=w;
  18. while j<>i do
  19. begin
  20. ans[a[j]]:=ans[j]-1;
  21. j:=a[j];
  22. end;
  23. j:=a[j];
  24. while j<>i do
  25. begin
  26. ans[j]:=ans[i];
  27. j:=a[j];
  28. end;
  29. end;
  30.  
  31. begin
  32. assign(input,'treat.in');
  33. assign(output,'treat.out');
  34. reset(input);
  35. rewrite(output);
  36.  
  37. read(n);
  38. for c:=1 to n do
  39. read(a[c]);
  40.  
  41. for c:=1 to n do
  42. if ans[c]=0 then
  43. begin
  44. ans[c]:=1;
  45. b[c]:=c;
  46. treat(c);
  47. end;
  48.  
  49. for c:=1 to n do
  50. writeln(ans[c]);
  51. close(input);close(output);
  52. end.