BIT_买衣服

买衣服

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 632   Accepted Submission(s) : 51
Font: Times New Roman | Verdana | Georgia
Font Size:  

Problem Description

一起去买衣服吧。有n个人,m个商店,每个人喜欢两种颜色,他们一起去买衣服,但是每个商店里只有一种颜色的衣服,当一个人买到他喜欢颜色的衣服时,他会变得高兴。
选择一家商店,这n个人都要去这家商店去买衣服,你的任务是保证变得高兴的人数最多。

Input

有多组测试用例。
第一行输入一个正整数n(1<=n<=10000)--去买衣服的人数,人从1-n编号。
接下来n行每行输入两个正整数a,b,表示第i个人喜欢颜色a和b(1<=a,b<=100000)。
接下来输入一个正整数m(1<=m<=10000)--有m家商店,商店从1-m编号。
接下来输入m个正整数c1,c2,......,cm(1<=cj<=100000),第j家商店衣服的颜色是cj。
保证每个人喜欢的两种颜色不一样。

Output

输出一个正整数,代表应该选择那家商店,使得变得高兴的人数最多。如果有多家这样的商店,那么输出编号最小的那一个。如果不存在这样的商店,则输出0。

Sample Input

2
2 4
2 5
3
4 2 5

Sample Output

2

Author

CWIND


#include<stdio.h>
int main()
{
	int n = 0, m = 0, i = 0, j = 0;
	long int a[110000] = { 0 }, b[110000] = { 0 }, c[110000] = { 0 }, num[11000] = { 0 };
	while (scanf("%d", &n) != EOF)
	{
		int max = 0, count = 0;
		memset(num, 0, sizeof(num));
		memset(a, 0, sizeof(a));
		memset(b, 0, sizeof(b));
		memset(c, 0, sizeof(c));
		for (i = 0;i<n;i++)
			scanf("%d%d", &a[i], &b[i]);
		scanf("%d", &m);
		for (i = 0;i<m;i++)
			scanf("%d", &c[i]);
		for (i = 0;i<m;i++)
		{
			for (j = 0;j<n;j++)
			{
				if (a[j] == c[i] || b[j] == c[i])
					num[i]++;
			}
		}
		for (i = 0;i<m;i++)
		{
			if (num[i]>max)
			{
				max = num[i];
				count = i + 1;
			}
		}
		printf("%d\n", count);

	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值