第六章28
【题目描述】
你知道第二价格竞拍吗?这是非常简单但很有名的一种竞拍方式。在第二价格竞拍中,每个潜在的买家私下的提交,可能是装在密封的信封里或者通过一个安全的联系途径,他(她)把投标价给物品的拍卖商。收到所有的投标价之后,拍卖商将物品判决给投标价最大的投标人,并向他(她)收取第二大投标价的费用。
假设你是拍卖商,并且你已经收到所有的投标价,你需要决定谁是赢家,并且决定他(她)支付的费用。
【输入】
有多行。第1行是一个整数T(0<T<50),表示有T组竞拍。接下来有T组数据,每组数据包括2行:第1行仅包括一个整数N(2≤N≤100),表示投标人的数量。第2行包括N个整数,用一个空格隔开。第i个整数Pi表示第i个投标人的投标价(0<Pi≤60000),你可以假定最大的投标价是唯一的。
【输出】
有多行。对于每组数据输出一行,两个整数index和cost,表示第index个投标人是赢家,他(她)需要支付的费用是cost,用一个空格分开。
【样例输入】
2
3
3 2 1
2
4 9
【样例输出】
1 2
2 4
#include<stdio.h> int main() { int n,i; int m,j,max=0,t; scanf("%d",&n); for(i=0;i<n;i++) { max=0; scanf("%d",&m); int x[m]; for(j=0;j<m;j++) scanf("%d",&x[j]); for(j=0;j<m;j++) if(x[max]<x[j]) max=j; t=x[0]; x[0]=x[max]; x[max]=t; for(j=1;j<m;j++) if(x[1]<x[j]) { t=x[1]; x[1]=x[j]; x[j]=t; } printf("%d %d\n",max+1,x[1]); } return 0; }
风过林梢,骄阳正好
彼时他们正当年少。