比赛 |
20111102 |
评测结果 |
AAAAAAAAAA |
题目名称 |
麻烦的干草打包机 |
最终得分 |
100 |
用户昵称 |
风华正茂 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-02 21:45:31 |
显示代码纯文本
- #include<fstream>
- #include<iomanip>
- using namespace std;
- ifstream cin("baler.in");
- ofstream cout("baler.out");
- int N,xt,yt,a[1053][3],zhong,shi,b[1055][1053]={0},tot=0,x[1055]={0};
- void zhuan(int p)
- {
- int i,j,cod=0;
- for(i=1;i<=N;i++)
- {
- int s,l;
- 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]);
- l=(a[p][2]+a[i][2])*(a[p][2]+a[i][2]);
- if(s==l)
- {
- cod=0;
- for(j=b[i][0];j>0;j--)
- {
- if(b[i][j]==p)
- cod=1;
- }
- if(cod==0)
- {
- b[p][0]++;
- b[p][b[p][0]]=i;
- zhuan(i);
- }
- }
- }
- }
- void jie(int zhongdian)
- {
- int i,j;
- if(zhongdian!=shi)
- {
- for(i=1;i<=N;i++)
- {
- for(j=1;j<=b[i][0];j++)
- {
- if(b[i][j]==zhongdian)
- {
- x[tot]=zhongdian;
- tot++;
- jie(i);
- }
- }
- }
- }
- }
- int main()
- {
- int i,j;
- cin>>N>>xt>>yt;
- for(i=1;i<=N;i++)
- {
- cin>>a[i][0]>>a[i][1]>>a[i][2];
- if(a[i][0]==xt&&a[i][1]==yt)
- zhong=i;
- if(a[i][0]==0&&a[i][1]==0)
- shi=i;
- }
- zhuan(shi);
- jie(zhong);
- x[tot]=shi;
- double zhuang[1052],zong=10000,bi,p1,p2;
- zhuang[tot]=10000;
- for(i=tot;i>0;i--)
- {
- p1=a[x[i]][2];
- p2=a[x[i-1]][2];
- bi=p1/p2;
- if(bi<0)
- bi=-bi;
- zhuang[i-1]=zhuang[i]*bi;
- zong=zong+zhuang[i-1];
- }
- cout<<setiosflags(ios::fixed)<<setprecision(0)<<zong<<endl;
- return 0;
- }