zoj 3202 Second-price Auction 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3365
模拟水
backgrond konwledge:
对于拍卖市场,我们通常想到的是,谁出价高交易物即给谁。可是,你是否想到:拍卖人可能说“假话”。好比我本来愿意出1万的,但只要第二名出8000,我出8001就能拿下来的话,我就不会报价1万。如何让竞买者显示出真实的信息呢?
题目分析:有了以上的背景知识,不难分析出本题要求。输入一串数,输出最大数的序,第二大数的值。
以下是代码:
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int p,x;
}a[150];
int cmp(node a,node b)
{
return a.p>b.p?1:0;
}
int main()
{
int t,n,i;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i].p);
a[i].x=i+1;
}
sort(a,a+n,cmp);
printf("%d %d\n",a[0].x,a[1].p);
}
return 0;
}
PS:长见识了。