Chri_K

P1080 国王游戏(非高精版)
#include <iostream>
#include <algorithm>
using namespace std;
struct node
{
    int l;
    int r; 
     int w; 
}p[1010];      
bool cmp(node x,node y) 
{
     return x.w < y.w; 
}         
int main() 
{
    int n,kl,kr;
    cin>>n;
    cin>>kl>>kr;
    for(int i=1;i<=n;i++)
    {
        cin>>p[i].l>>p[i].r; 
           p[i].w=p[i].l*p[i].r; 
    }
    sort(p+1,p+1+n,cmp);
    long long ans=kl;
    for(int i=1;i<=n-1;i++)
    {
        ans=ans*p[i].l;
    }
    ans=ans/p[n].r;
    cout<<ans;
     return 0; 
}

根据数学不等式知识推导,要将大臣的左右手之积由小到大排序,即l*r排序

posted on 2020-10-19 15:34  Chri_K  阅读(1866)  评论(0编辑  收藏  举报