比赛 2024暑期C班集训1 评测结果 TTTTTTTTTTTTTTTTTTTT
题目名称 艾姆易艾克斯 最终得分 0
用户昵称 小金 运行时间 20.000 s
代码语言 C++ 内存使用 6.65 MiB
提交时间 2024-07-01 09:42:14
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
const long long m=1e9+7;
int n,ans;
long long s=1,cs;
map<int,int> b;
struct xl{
    int a,b;
}x[100010];
bool cmp(xl c,xl d)
{
    if(c.a!=d.a) return c.a<d.a;
    else return c.b>d.b;
}
long long q()
{
    long long t=2;
    while(cs>0)
    {
        if(cs%2==1)
        {
            s=s*t%m;
        }
        t=t*t%m;
        cs=cs/2;
    }
}
int main()
{
    freopen("Mex.in","r",stdin);
    freopen("Mex.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x[i].a);
        b[x[i].a]++;
    }
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x[i].b);
    }
    sort(x+1,x+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        if(x[i].b>x[i].a)
        {
            b[x[i].a]--;
            b[x[i].b]++;
        } 
        else break;
    }
    for(int i=0;;i++)
    {
        if(b[i]==0)
        {
            ans=i;
            break;
        }
    }
    for(int i=1;i<=n;i++)
    {
        if(x[i].a>ans||x[i].a==x[i].b)
        {
            cs++;
        }
    }
    q();
    printf("%d %lld",ans,s);
    return 0;
}