比赛 EYOI与SBOI开学欢乐赛10th 评测结果 AAAAAAAAAA
题目名称 数字对数 最终得分 100
用户昵称 op_组撒头屯 运行时间 0.790 s
代码语言 C++ 内存使用 5.74 MiB
提交时间 2022-10-10 19:26:26
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=200+5;
int n;
int a[15];
map<int,int>mp; 
int lgg(int x){
    int t=0;
    while(x!=0){
        x/=10;t++;
    }
    return t;
}
int main(){
	freopen ("numlg.in","r",stdin);
	freopen ("numlg.out","w",stdout);
	int T;scanf("%d",&T);
	while(T--){
	    scanf("%d",&n);
	    mp.clear();
	    memset(a,0,sizeof(a));
	    for (int i=1;i<=n;i++){
	        int x;scanf("%d",&x);
	        mp[x]++;
        }
        for (int i=1;i<=n;i++){
            int x;scanf("%d",&x);
            mp[x]--;
        }
        int &x=mp[1e9],ans=0;
        if (x!=0){
            mp[10]+=x;ans+=abs(x);
            x=0;
        }
        map<int,int>::iterator iter;
        for (iter=mp.begin();iter!=mp.end();iter++){
            int p=iter->first,q=iter->second;
            if (q!=0){
                iter->second=0;
                if (p<=9)a[p]+=q;
                else a[lgg(p)]+=q,ans+=abs(q);
            }
        }
        for (int i=2;i<=9;i++)ans+=abs(a[i]);
        printf("%d\n",ans);
    }
    return 0;
}