比赛 20111102 评测结果 AAAAAAAAAA
题目名称 麻烦的干草打包机 最终得分 100
用户昵称 风华正茂 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-02 21:45:31
显示代码纯文本
  1. #include<fstream>
  2. #include<iomanip>
  3. using namespace std;
  4. ifstream cin("baler.in");
  5. ofstream cout("baler.out");
  6. int N,xt,yt,a[1053][3],zhong,shi,b[1055][1053]={0},tot=0,x[1055]={0};
  7. void zhuan(int p)
  8. {
  9. int i,j,cod=0;
  10. for(i=1;i<=N;i++)
  11. {
  12. int s,l;
  13. s=(a[p][0]-a[i][0])*(a[p][0]-a[i][0])+(a[p][1]-a[i][1])*(a[p][1]-a[i][1]);
  14. l=(a[p][2]+a[i][2])*(a[p][2]+a[i][2]);
  15. if(s==l)
  16. {
  17. cod=0;
  18. for(j=b[i][0];j>0;j--)
  19. {
  20. if(b[i][j]==p)
  21. cod=1;
  22. }
  23. if(cod==0)
  24. {
  25. b[p][0]++;
  26. b[p][b[p][0]]=i;
  27. zhuan(i);
  28. }
  29. }
  30. }
  31. }
  32. void jie(int zhongdian)
  33. {
  34. int i,j;
  35. if(zhongdian!=shi)
  36. {
  37. for(i=1;i<=N;i++)
  38. {
  39. for(j=1;j<=b[i][0];j++)
  40. {
  41. if(b[i][j]==zhongdian)
  42. {
  43. x[tot]=zhongdian;
  44. tot++;
  45. jie(i);
  46. }
  47. }
  48. }
  49. }
  50. }
  51. int main()
  52. {
  53. int i,j;
  54. cin>>N>>xt>>yt;
  55. for(i=1;i<=N;i++)
  56. {
  57. cin>>a[i][0]>>a[i][1]>>a[i][2];
  58. if(a[i][0]==xt&&a[i][1]==yt)
  59. zhong=i;
  60. if(a[i][0]==0&&a[i][1]==0)
  61. shi=i;
  62. }
  63. zhuan(shi);
  64. jie(zhong);
  65. x[tot]=shi;
  66. double zhuang[1052],zong=10000,bi,p1,p2;
  67. zhuang[tot]=10000;
  68. for(i=tot;i>0;i--)
  69. {
  70. p1=a[x[i]][2];
  71. p2=a[x[i-1]][2];
  72. bi=p1/p2;
  73. if(bi<0)
  74. bi=-bi;
  75. zhuang[i-1]=zhuang[i]*bi;
  76. zong=zong+zhuang[i-1];
  77. }
  78. cout<<setiosflags(ios::fixed)<<setprecision(0)<<zong<<endl;
  79. return 0;
  80. }