1. 程式人生 > >京東-2017-拍賣產品

京東-2017-拍賣產品

end 大於 algo names scan esp 公司 clu 拒絕

題目描述
公司最近新研發了一種產品,共生產了n件。有m個客戶想購買此產品,第i個客戶出價Vi元。為了確保公平,公司決定要以一個固定的價格出售產品。每一個出價不低於要價的客戶將會得到產品,余下的將會被拒絕購買。請你找出能讓公司利潤最大化的售價。
輸入
輸入第一行二個整數n(1<=n<=1000),m(1<=m<=1000),分別表示產品數和客戶數。
接下來第二行m個整數Vi(1<=Vi<=1000000),分別表示第i個客戶的出價。
樣例輸入
5 4
2 8 10 7
輸出
輸出一行一個整數,代表能夠讓公司利潤最大化的售價。
樣例輸出
7

解題思路:所有客戶都會給出一個價格,但是我們要找出其中一個價格使得總的利潤最大。即確定一個值,以該值為價格進行拍賣,所有大於該值的客戶均能以該價格進行購買。即總的利潤為拍賣的價格和大於該價格的所有客戶人數的乘積。

所以,直接排序完了求解就OK

#include<stdio.h>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
    int n,m,a;
    vector<int> data(m);
    pair<int,int> res;
    cin>>n>>m;
    int mi=min(n,m);
    while(m--){
        scanf(
"%d",&a); data.push_back(a); } sort(data.rbegin(),data.rend()); for(int i=0;i<mi;i++){ if(res.first<data[i]*(i+1)){ res.first=data[i]*(i+1); res.second=data[i]; } } cout<<res.second<<endl; }

京東-2017-拍賣產品