记录编号 |
588833 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
艾姆易艾克斯 |
最终得分 |
100 |
用户昵称 |
健康铀 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.265 s |
提交时间 |
2024-07-01 15:43:41 |
内存使用 |
1.60 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,dp[100010],bj,ans,res=1,tp[100010];
struct abc{
int x;
int y;
};
abc a[100010];
bool cmp(abc A,abc B){
return A.x<B.x;
}
int main(){
freopen("Mex.in", "r", stdin);
freopen("Mex.out", "w", stdout);
cin>>n;
for(long long i=1;i<=n;i++){
cin>>a[i].x;
}
for(long long i=1;i<=n;i++){
cin>>a[i].y;
}
sort(a+1,a+n+1,cmp);
for(int i=0;i<=n;i++){
int pd=0;
int l=1,r=n;
while(l<=r){
int mid=(r+l)/2;
// cout<<mid<<" "<<l<<" "<<r<<endl;
if(a[mid].x>100000){
r=mid-1;
continue;
}
if(a[mid].x<i){
l=mid+1;
}
else if(a[mid].x>i){
r=mid-1;
}
else{
int j=mid;
while(a[j].x==i&&j>=1){
if(a[j].x==i&&a[j].y==i){
pd=1;
break;
}
j--;
}
j=mid;
while(a[j].x==i&&j<=n){
if(a[j].x==i&&a[j].y==i){
pd=1;
break;
}
j++;
}
break;
}
}
if(pd==0){
ans=i;
break;
}
}
for(int i=1;i<=n;i++){
if(a[i].x!=ans&&a[i].y!=ans)
res=res*2%1000000007;
}
cout<<ans<<" "<<res;
return 0;
}