比赛 |
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;
}