SDNUOJ 1155.Pizza Pricing

题意:多组输入,每组有N个样例,每组样例两个数P D
P为披萨的价钱,D为披萨 的直径
求单位面积下的最小的价钱对应的直径,
注意按输出格式输出

#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <stdlib.h>
#include <sstream>
#include <map>
#include <set>
typedef unsigned long long ull;
using namespace std;

double f(int x, int y)//定义了一个函数,用来求单位面积下的价钱,方便使用。
{
    
    
    double pi = acos(-1);//这可是求π的好方法哎
    double p = 4*y/(pi*x*x);
    return p;
}
double ar[10005];//这个数组存f(D,P)的值,用于后续比较大小
int br[10005];//这个数组用于存每个ar对应 的披萨的尺寸
int main()
{
    
    
    int D, P, n;
    int sum;
    int ans = 0;
    while(cin>>n && n!=0){
    
    
    for(int i = 0; i < n; i++)
    {
    
    
        sum= 0;
        cin>>D>>P;
        br[i] = D;
        ar[i] = f(D,P);
    }
    for(int i = 1; i<n; i++)
    {
    
    
        if(ar[sum] > ar[i])
        {
    
    
            sum = i;//非常关键,因为如果用排序,得到的最后那个ar[0],对应的br是不知道的,所以每次比较都要用sum储存一下

        }
    }
    ans++;
    cout<<"Menu "<<ans<<": "<<br[sum]<<'\n';

    }
}





猜你喜欢

转载自blog.csdn.net/weixin_51216553/article/details/109565418