您的位置:首页 > 其它

FOJ--1685--跑跑卡丁车--解题报告

2009-07-26 08:48 183 查看
http://acm.fzu.edu.cn/problem.php?pid=1685
分析:我们知道,最长的路程当然要陪最好的加速器,这样才能最大幅度的加快速度。
于是将2组数据排序后,在将2组数据一个一个相除,当加速器没有后在加上本身的就可以了

代码如下:

#include <stdio.h>
void paixu(double s[1001],int len)
{
int i,j,max;
for(i=0;i<len-1;i++)
{
max=i;
for(j=i+1;j<len;j++)
if(s[max]<s[j])
max=j;
if(max!=i)
{
double temp;
temp=s[i];
s[i]=s[max];
s[max]=temp;
}
}
}
int main()
{
int m,n,i,j;
double sum;
double a[1001],b[1001];
while(scanf("%d%d",&m,&n)!=EOF)
{
sum=0;
for(i=0;i<m;i++)
scanf("%lf",&a[i]);
for(j=0;j<n;j++)
scanf("%lf",&b[j]);
paixu(a,m);
paixu(b,n);
for(i=0;i<n;i++)
sum+=a[i]/b[i];
for(i=n;i<m;i++)
sum+=a[i];
printf("%.2lf/n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: