1 条题解

  • 0
    @ 2021-6-15 14:28:41

    C++ :

    /*by SilverN*/
    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    #include<queue>
    using namespace std;
    const int mxn=100010;
    int read(){
        int x=0,f=1;char ch=getchar();
        while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    priority_queue<int>q1,q2;
    int n;
    int calc(int a[],int b[]){
        int hd1=1,tl1=n,hd2=1,tl2=n;
        int ans=0;
        while(hd1<=tl1){
            if(a[hd1]>b[hd2]){
                ++hd1;++hd2;
                ans+=2;
            }
            else if(a[tl1]>b[tl2]){
                --tl1;--tl2;
                ans+=2;
            }
            else{
                if(a[hd1]==b[tl2])ans++;
                ++hd1;--tl2;
            }
        }
        return ans;
    }
    int a[mxn],b[mxn];
    int main(){
        int i,j;
        n=read();
        for(i=1;i<=n;i++)a[i]=read();
        for(i=1;i<=n;i++)b[i]=read();
        sort(a+1,a+n+1);
        sort(b+1,b+n+1);
        printf("%d %d\n",calc(a,b),2*n-calc(b,a));
        return 0;
    }
    
    • 1

    信息

    ID
    1004
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者