题目描述:
勇者终于攒够了钱来到武器店买剑,店里有n把剑,因为勇者身经百战所以他一眼就能看出剑的好坏,每把剑都需要一定金币,现在勇者要挑选一把性价比最高的剑用于讨伐,若两把剑的性价比相同则选择攻击力高的剑,请问每把剑的性价比分别为多少以及最后勇者选择的剑的性价比和攻击力。(剑的性价比即为该剑的攻击力除以它的价格)
输入格式:
第一行为一个正整数n表示有n把剑;
接下来n行每行两个正整数,第一个为该剑的攻击力,第二个为该剑的价格;
输出格式:
第一行为n个实数表示剑的性价比(保留三位小数,用空格隔开);
第二行为勇者最后选择的剑的性价比(保留三位小数)以及该剑的攻击力(整数)(用空格隔开);
样例输入:
5 4 2 3 2 5 3 2 1 6 7
样例输出:
2.000 1.500 1.667 2.000 0.857 2.000 4
提示:
n<4000
时间限制: 1000ms
空间限制: 256MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,c=0,a[4001],b[4001];
double max=0,s=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i]>>b[i];
}
for(int i=0;i<n;i++){
s=a[i]*1.0/b[i];
printf("%.3lf",s);
if(i!=n-1){
cout<<" ";
}
if(s>max){
max=s;
c=a[i];
}
}
cout<<endl;
printf("%.3lf ",max);
cout<<c;
return 0;
}