1000A. Codehorses T-shirts(思维)

Codehorses has just hosted the second Codehorses Cup. This year, the same as the previous one, organizers are giving T-shirts for the winners.

The valid sizes of T-shirts are either "M" or from 0

to 3

"X" followed by "S" or "L". For example, sizes "M", "XXS", "L", "XXXL" are valid and "XM", "Z", "XXXXL" are not.

There are n

winners to the cup for both the previous year and the current year. Ksenia has a list with the T-shirt sizes printed for the last year cup and is yet to send the new list to the printing office.

Organizers want to distribute the prizes as soon as possible, so now Ksenia is required not to write the whole list from the scratch but just make some changes to the list of the previous year. In one second she can choose arbitrary position in any word and replace its character with some uppercase Latin letter. Ksenia can't remove or add letters in any of the words.

What is the minimal number of seconds Ksenia is required to spend to change the last year list to the current one?

The lists are unordered. That means, two lists are considered equal if and only if the number of occurrences of any string is the same in both lists.

Input

The first line contains one integer n

( 1n100

) — the number of T-shirts.

The i

-th of the next n lines contains ai — the size of the i

-th T-shirt of the list for the previous year.

The i

-th of the next n lines contains bi — the size of the i

-th T-shirt of the list for the current year.

It is guaranteed that all the sizes in the input are valid. It is also guaranteed that Ksenia can produce list b

from the list a

.

Output

Print the minimal number of seconds Ksenia is required to spend to change the last year list to the current one. If the lists are already equal, print 0.

Examples
Input
Copy
3
XS
XS
M
XL
S
XS
Output
Copy
2
Input
Copy
2
XXXL
XXL
XXL
XXXS
Output
Copy
1
Input
Copy
2
M
XS
XS
M
Output
Copy
0
Note

In the first example Ksenia can replace "M" with "S" and "S" in one of the occurrences of "XS" with "L".

In the second example Ksenia should replace "L" in "XXXL" with "S".

In the third example lists are equal.

题意:将n个字符串,要转化成另外的n字符串,求需要修改的字符串的最少次数。

思路:求两个集合每种字符串的个数,遍历A集合,求该字符串在A集合的个数,以及在B集合的个数的最小值mint,说明

这mint个字符串不需要改变。


#include<iostream>
#include<string>
#include<algorithm>
#include<map>
using namespace std;
const int N = 105;
string a[N],b[N];
map<string,int>A,B;
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	   cin>>a[i];
	for(int i=0;i<n;i++)
	   cin>>b[i];
	for(int i=0;i<n;i++){
		A[a[i]]++;
		B[b[i]]++;
	}
	map<string,int>::iterator it;
	int ans=n;
	for(it=A.begin();it!=A.end();it++)
	   ans-=min(it->second,B[it->first]);
	cout<<ans<<endl;
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值