/ Randle /

记录详情

Wrong Answer


  
# 状态 耗时 内存占用
#1 Accepted 1ms 200.0 KiB
#2 Accepted 1ms 200.0 KiB
#3 Accepted 1ms 336.0 KiB
#4 Accepted 1ms 204.0 KiB
#5 Accepted 11ms 296.0 KiB
#6 Accepted 44ms 3.27 MiB
#7 Wrong Answer 791ms 22.402 MiB
#8 Accepted 171ms 920.0 KiB
#9 Accepted 580ms 18.605 MiB
#10 Accepted 138ms 2.941 MiB

代码

#include <utility>
#include <cstdio>
#include <cmath>
#include <map>

typedef std::pair<long long,long long> count;

std::map<long long,count> c;

int main()
{
	// freopen("card.in","r",stdin);
	// freopen("card.out","w",stdout);
	int n;
	scanf("%d",&n);
	bool check=false;
	long long need=(n+1)>>1;
	for(int i=0;i<n;i++)
	{
		long long a,b;
		scanf("%lld%lld",&a,&b);
		c[a].first++;
		if(a!=b)
		{
			c[b].first++;
			c[b].second++;
		}
		if(c[a].first>=need) check|=true;
		if(c[b].first>=need) check|=true;
	}
	if(!check) puts("Impossible");
	else
	{
		long long min=need;
		for(std::map<long long,count>::iterator i=c.begin();i!=c.end();i++)
			if((i->second).first>=need)
				min=std::min(min,std::max(0LL,need-(i->second).first+(i->second).second));	
		printf("%lld\n",min);
	}
	return 0;
}

信息

递交者
类型
递交
题目
纸牌
题目数据
下载
语言
C++
递交时间
2019-12-13 17:35:12
评测时间
2019-12-13 17:35:12
评测机
分数
90
总耗时
1744ms
峰值内存
22.402 MiB