/*
1 vector 也是从1开始
2 capacity求出来的是数量
3 string中=已经重载可以用来复制
4 cout<<string<<endl是错误的。可以一个一个的输出
*/
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<vector>
using namespace std;
#define MAX 120
class Point
{
public:
char name[20];
int money;
};
Point person[MAX];
int bid[1200];//出家的个数
int main()
{
//freopen("in.txt","r",stdin);
int U,M;
while(scanf("%d %d",&U,&M)!=EOF)
{
int i=0;
//初始化
for(i=0;i<1200;i++)
{
bid[i]=0;
}
//输入
vector<string> v[1200];
int price;string win;
int flag=0;
for(i=0;i<M;i++)
{
scanf("%s %d",person[i].name,&person[i].money);
bid[person[i].money]++;
v[person[i].money].push_back(person[i].name);
}
//判断是不是第一种情况(unique,)
for(i=0;i<1200;i++)
{
if(bid[i]==1)
{
price=i;
int num=v[i].capacity();
win=v[i].at(num-1);
win=v[i].back();
flag=1;break;
}
}
//判断是不是第二种情况
if(flag==0)
{
//找出最小值
for(i=0;i<1200;i++)
{
//求出最小值(但是不能是1,或者0)
if(bid[i]>1)
{
win=v[i].at(0);
price=i;
break;
}
}
}
//输出
printf("The winner is ");
for(i=0;i<win.length();i++)
{
cout<<win[i];
}
cout<<endl;
printf("The price is %d\n",price);
}
return 0;
}
(精)河南省第三届acm(AMAZING AUCTION)
最新推荐文章于 2021-05-07 18:27:58 发布