#include <stdio.h>
#include <stdlib.h>


int n;
int *A,*B,*D,*G;
int broj;

void zam(int *a,int *b)
{
	int pom=*a;
	*a=*b;
	*b=pom;
}

//prvo resenje ------------------------------------------
void sortA(int *A,int n)
{
	int br=A[n/2];
	int i=0,j=n-1;
	while (i<=j)
	{
		while (A[i]<br)
			i++;
		while (A[j]>br)
			j--;
		if (i<=j)
		{
			zam(A+i,A+j);
			i++;
			j--;
		}
	}
	if (j>0)
		sortA(A,j+1);
	if (n-i>1)
		sortA(A+i,n-i);
}

void sortB(int *B,int *D,int *G,int n)
{
	int br=B[n/2];
	int i=0,j=n-1;
	while (i<=j)
	{
		while (B[i]<br)
			i++;
		while (B[j]>br)
			j--;
		if (i<=j)
		{
			zam(B+i,B+j);
			zam(G+i,G+j);
			zam(D+i,D+j);
			i++;
			j--;
		}
	}
	if (j>0)
		sortB(B,D,G,j+1);
	if (n-i>1)
		sortB(B+i,D+i,G+i,n-i);
}


void f1()
{
	sortA(A,n);
	sortB(B,D,G,n);

	int *P1=(int *)malloc(n*sizeof(int));
	int *P2=(int *)malloc(n*sizeof(int));
	int i,j;
	for (i=0;i<n;i++)
	{
		int *pom=P2;
		P2=P1;
		P1=pom;
		if (A[i]>B[0])
			P1[0]=D[0];
		else
			P1[0]=-G[0];
		for (j=1;j<=i;j++)
		{
			P1[j]=P1[j-1]-G[j];
			if (A[i]>B[j] && P2[j-1]+D[j]>P1[j])
				P1[j]=P2[j-1]+D[j];
		}
	}
	broj=P1[n-1];
}
//-------------------------------------------------------


//drugo resenje -----------------------------------------
void sortC(int *B,int *D,int *G,int n)
{
	int br=D[n/2]+G[n/2];
	int i=0,j=n-1;
	while (i<=j)
	{
		while (D[i]+G[i]<br)
			i++;
		while (D[j]+G[j]>br)
			j--;
		if (i<=j)
		{
			zam(B+i,B+j);
			zam(G+i,G+j);
			zam(D+i,D+j);
			i++;
			j--;
		}
	}
	if (j>0)
		sortC(B,D,G,j+1);
	if (n-i>1)
		sortC(B+i,D+i,G+i,n-i);
}

void f2()
{
	sortC(B,D,G,n);
	broj=0;
	int i,j,da,k,m;
	m=n;
	for (i=n-1;i>=0;i--)
	{
		da=0;
		for (j=0;j<m;j++)
			if (A[j]>B[i])
				if (!da)
				{
					da=1;
					k=j;
				}
				else
					if (A[j]<A[k])
						k=j;
		if (da)
		{
			m--;
			zam(A+k,A+m);
			broj+=D[i];
		}
		else
			broj-=G[i];
	}
}
//-------------------------------------------------------



void main()
{
	FILE *dat=fopen("Vojnici.in","r");
	fscanf(dat,"%d",&n);
	int i;
	A=(int *)malloc(n*sizeof(int));
	B=(int *)malloc(n*sizeof(int));
	D=(int *)malloc(n*sizeof(int));
	G=(int *)malloc(n*sizeof(int));
	for (i=0;i<n;i++)
		fscanf(dat,"%d",A+i);
	for (i=0;i<n;i++)
		fscanf(dat,"%d",B+i);
	for (i=0;i<n;i++)
		fscanf(dat,"%d",D+i);
	for (i=0;i<n;i++)
		fscanf(dat,"%d",G+i);
	fclose(dat);

	f1();
	//f2();



	dat=fopen("Vojnici.out","w");
	fprintf(dat,"%d",broj);
	fclose(dat);
	
	
}