In this problem we consider a special type of an auction, which is called the second-price auction. As in regular auction n bidders place a bid which is price a bidder ready to pay. The auction is closed, that is, each bidder secretly informs the organizer of the auction price he is willing to pay. After that, the auction winner is the participant who offered the highest price. However, he pay not the price he offers, but the highest price among the offers of other participants (hence the name: the second-price auction).
Write a program that reads prices offered by bidders and finds the winner and the price he will pay. Consider that all of the offered prices are different.
InputThe first line of the input contains n (2 ≤ n ≤ 1000) — number of bidders. The second line contains n distinct integer numbers p1, p2, ... pn, separated by single spaces (1 ≤ pi ≤ 10000), where pi stands for the price offered by the i-th bidder.
OutputThe single output line should contain two integers: index of the winner and the price he will pay. Indices are 1-based.
Examples2 5 7
2 5
3 10 2 8
1 8
6 3 8 2 9 4 14
6 9
AC:
#include<stdio.h>
#include<string.h>#include<algorithm>
using namespace std;
int main()
{
int n,i,m,j;
int a[1005];
scanf("%d",&n);
j=0;m=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(m<a[i])
{
m=a[i];
j=i;
}
}
sort(a,a+n);
printf("%d %d\n",++j,a[n-2]);
return 0;
}
本文介绍了一种特殊类型的拍卖——第二价格拍卖,并提供了一个程序实现示例。在该拍卖中,最高出价者获胜但支付次高者的出价。文章包含输入输出样例及完整代码。
776

被折叠的 条评论
为什么被折叠?



