1 solutions
-
0
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
Information
- ID
- 18832
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By