NKSGAME - VOI08 Trò chơi với dãy số
Tác giả: hieult
Ngôn ngữ: C++
#include <stdio.h>
//#include <conio.h>
void quickSort(long A[], long lower,long upper)
{
long x = A[(lower + upper) / 2];
long i = lower;
long j = upper;
do {
while(A[i] < x)
i ++;
while (A[j] > x)
j --;
if (i <= j)
{
long tg=A[i];
A[i]=A[j];
A[j]=tg;
i ++;
j --;
}
}while(i <= j);
if (j > lower)
quickSort(A, lower, j);
if (i < upper)
quickSort(A, i, upper);
}
main()
{
long n,a[100001],b[100001],Min=2000000000,x,y;
scanf("%ld",&n);
for(long i=1;i<=n;i++)
scanf("%ld",&a[i]);
for(long i=1;i<=n;i++)
scanf("%ld",&b[i]);
quickSort(a,1,n);
quickSort(b,1,n);
x=1;y=n;
do
{
if(x==n&&a[x]+b[y]<0)
{
if(-(a[x]+b[y])<Min)
Min=-(a[x]+b[y]);
break;
}
else if(y==1&&a[x]+b[y]>0)
{
if(a[x]+b[y]<Min)
Min=a[x]+b[y];
break;
}
else if(a[x]+b[y]<0)
{
if(-(a[x]+b[y])<Min)
Min=-(a[x]+b[y]);
x++;
}
else if(a[x]+b[y]>0)
{
if(a[x]+b[y]<Min)
Min=a[x]+b[y];
y--;
}
else if(a[x]+b[y]==0)
{
Min=0;
break;
}
}while(1);
printf("%ld",Min);
//getch();
}