第六章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;
}

 

posted @ 2022-11-11 22:35  aquAAA  阅读(248)  评论(0编辑  收藏  举报