比赛 20111102 评测结果 AWWWWWWWWW
题目名称 麻烦的干草打包机 最终得分 10
用户昵称 血之侍卫 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-02 21:01:46
显示代码纯文本
  1. #include<fstream>
  2. #include<cstdio>
  3. using namespace std;
  4. int n,X,Y,ans;
  5. int ax[1060],ay[1060],ar[1060],v[1060];
  6. bool temp[1060]={true};
  7. bool flag=true;
  8. int abss(int x)
  9. {
  10. if(x<0)
  11. return -x;
  12. return x;
  13. }
  14. void dfs(int j,int t)
  15. {
  16. if(ax[j]==X&&ay[j]==Y&&flag)
  17. {
  18. flag=!flag;
  19. ans=t;
  20. }
  21. if(flag)
  22. {
  23. for(int i=j;i<n;i++)
  24. {
  25. if(abss(ax[j]-ax[i])*abss(ax[j]-ax[i])+abss(ay[j]-ay[i])*abss(ay[j]-ay[i])==(ar[i]+ar[j])*(ar[i]+ar[j]))
  26. {
  27. v[i]=v[j]*double(ar[j])/double(ar[i]);
  28. dfs(i,t+v[i]);
  29. }
  30. }
  31. }
  32. }
  33. int main()
  34. {
  35. ifstream fin("baler.in");
  36. ofstream fout("baler.out");
  37. fin>>n>>X>>Y;
  38. int zan;
  39. for(int i=0;i<n;i++)
  40. {
  41. fin>>ax[i]>>ay[i]>>ar[i];
  42. if(ax[i]==0&&ay[i]==0)
  43. {
  44. zan=i;
  45. temp[i]=false;
  46. }
  47. }
  48. v[zan]=10000;
  49. dfs(zan,10000);
  50. fout<<ans;
  51. return 0;
  52. }