import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class Main {

	String fileName = "prizes";

	public void solve() throws IOException {
		int n = nextInt();
		int ans[] = new int[n];
		int[][] a = new int[2][n];
		int[][] sum = new int[2][n];
		for (int i = 0; i < 2; i++)
			for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			}
		for (int i = 0; i < n; i++)
			ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i];
		int max = ans[0];
		for (int ktr = 0; ktr < ans.length; ktr++) {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		}
		out.print(max);

	}

	public void run() {
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	BufferedReader br;
	StringTokenizer in;
	static PrintWriter out;

	public String nextToken() throws IOException {
		while (in == null || !in.hasMoreTokens()) {
			in = new StringTokenizer(br.readLine());
		}
		return in.nextToken();
	}

	public int nextInt() throws IOException {
		return Integer.parseInt(nextToken());
	}

	public double nextDouble() throws IOException {
		return Double.parseDouble(nextToken());
	}

	public long nextLong() throws IOException {
		return Long.parseLong(nextToken());
	}

	public static void main(String[] args) throws IOException {
		new Main().run();
	}

} import java.io.BufferedReader; BufferedReader java.io import java.io.FileReader; FileReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.PrintWriter; PrintWriter java.io import java.util.StringTokenizer; StringTokenizer java.util public class Main {

	String fileName = "prizes";

	public void solve() throws IOException {
		int n = nextInt();
		int ans[] = new int[n];
		int[][] a = new int[2][n];
		int[][] sum = new int[2][n];
		for (int i = 0; i < 2; i++)
			for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			}
		for (int i = 0; i < n; i++)
			ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i];
		int max = ans[0];
		for (int ktr = 0; ktr < ans.length; ktr++) {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		}
		out.print(max);

	}

	public void run() {
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	BufferedReader br;
	StringTokenizer in;
	static PrintWriter out;

	public String nextToken() throws IOException {
		while (in == null || !in.hasMoreTokens()) {
			in = new StringTokenizer(br.readLine());
		}
		return in.nextToken();
	}

	public int nextInt() throws IOException {
		return Integer.parseInt(nextToken());
	}

	public double nextDouble() throws IOException {
		return Double.parseDouble(nextToken());
	}

	public long nextLong() throws IOException {
		return Long.parseLong(nextToken());
	}

	public static void main(String[] args) throws IOException {
		new Main().run();
	}

} Main String fileName = "prizes"; fileName "prizes" BufferedReader br; br StringTokenizer in; in static PrintWriter out; out public void solve() throws IOException {
		int n = nextInt();
		int ans[] = new int[n];
		int[][] a = new int[2][n];
		int[][] sum = new int[2][n];
		for (int i = 0; i < 2; i++)
			for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			}
		for (int i = 0; i < n; i++)
			ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i];
		int max = ans[0];
		for (int ktr = 0; ktr < ans.length; ktr++) {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		}
		out.print(max);

	} solve {
		int n = nextInt();
		int ans[] = new int[n];
		int[][] a = new int[2][n];
		int[][] sum = new int[2][n];
		for (int i = 0; i < 2; i++)
			for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			}
		for (int i = 0; i < n; i++)
			ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i];
		int max = ans[0];
		for (int ktr = 0; ktr < ans.length; ktr++) {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		}
		out.print(max);

	} int n = nextInt(); n nextInt() nextInt int ans[] = new int[n]; ans new int[n] n int[][] a = new int[2][n]; a new int[2][n] 2 n int[][] sum = new int[2][n]; sum new int[2][n] 2 n for (int i = 0; i < 2; i++)
			for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			} int i = 0; int i = 0; i 0 i < 2 i 2 i++ i++ i for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			} for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			} int j = 0; int j = 0; j 0 j < n j n j++ j++ j {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			} {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			} a[i][j] = nextInt() a[i][j] a[i] a i j nextInt() nextInt if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j]; j == 0 j 0 sum[i][j] = a[i][j] sum[i][j] sum[i] sum i j a[i][j] a[i] a i j sum[i][j] = sum[i][j - 1] + a[i][j] sum[i][j] sum[i] sum i j sum[i][j - 1] + a[i][j] sum[i][j - 1] sum[i] sum i j - 1 j 1 a[i][j] a[i] a i j for (int i = 0; i < n; i++)
			ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i]; int i = 0; int i = 0; i 0 i < n i n i++ i++ i ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i]; ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i] ans[i] ans i sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i] sum[0][i] + sum[1][n - 1] - sum[1][i] sum[0][i] + sum[1][n - 1] sum[0][i] sum[0] sum 0 i sum[1][n - 1] sum[1] sum 1 n - 1 n 1 sum[1][i] sum[1] sum 1 i a[1][i] a[1] a 1 i int max = ans[0]; max ans[0] ans 0 for (int ktr = 0; ktr < ans.length; ktr++) {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		} int ktr = 0; int ktr = 0; ktr 0 ktr < ans.length ktr ans.length ans ans.length ktr++ ktr++ ktr {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		} {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		} if (ans[ktr] > max) {
				max = ans[ktr];
			} ans[ktr] > max ans[ktr] ans ktr max {
				max = ans[ktr];
			} max = ans[ktr] max ans[ktr] ans ktr out.print(max) out.print out max public void run() {
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	} run {
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	} try {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		} IOException e {
			e.printStackTrace();
			System.exit(1);
		} e.printStackTrace() e.printStackTrace e System.exit(1) System.exit System 1 {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} br = new BufferedReader(new InputStreamReader(System.in)) br new BufferedReader(new InputStreamReader(System.in)) out = new PrintWriter(System.out, true) out new PrintWriter(System.out, true) solve() solve out.close() out.close out public String nextToken() throws IOException {
		while (in == null || !in.hasMoreTokens()) {
			in = new StringTokenizer(br.readLine());
		}
		return in.nextToken();
	} nextToken {
		while (in == null || !in.hasMoreTokens()) {
			in = new StringTokenizer(br.readLine());
		}
		return in.nextToken();
	} while (in == null || !in.hasMoreTokens()) {
			in = new StringTokenizer(br.readLine());
		} in == null || !in.hasMoreTokens() in == null in null !in.hasMoreTokens() in.hasMoreTokens() in.hasMoreTokens in {
			in = new StringTokenizer(br.readLine());
		} in = new StringTokenizer(br.readLine()) in new StringTokenizer(br.readLine()) return in.nextToken(); in.nextToken() in.nextToken in public int nextInt() throws IOException {
		return Integer.parseInt(nextToken());
	} nextInt {
		return Integer.parseInt(nextToken());
	} return Integer.parseInt(nextToken()); Integer.parseInt(nextToken()) Integer.parseInt Integer nextToken() nextToken public double nextDouble() throws IOException {
		return Double.parseDouble(nextToken());
	} nextDouble {
		return Double.parseDouble(nextToken());
	} return Double.parseDouble(nextToken()); Double.parseDouble(nextToken()) Double.parseDouble Double nextToken() nextToken public long nextLong() throws IOException {
		return Long.parseLong(nextToken());
	} nextLong {
		return Long.parseLong(nextToken());
	} return Long.parseLong(nextToken()); Long.parseLong(nextToken()) Long.parseLong Long nextToken() nextToken public static void main(String[] args) throws IOException {
		new Main().run();
	} main {
		new Main().run();
	} new Main().run() new Main().run new Main() String[] args args public class Main {

	String fileName = "prizes";

	public void solve() throws IOException {
		int n = nextInt();
		int ans[] = new int[n];
		int[][] a = new int[2][n];
		int[][] sum = new int[2][n];
		for (int i = 0; i < 2; i++)
			for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			}
		for (int i = 0; i < n; i++)
			ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i];
		int max = ans[0];
		for (int ktr = 0; ktr < ans.length; ktr++) {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		}
		out.print(max);

	}

	public void run() {
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	BufferedReader br;
	StringTokenizer in;
	static PrintWriter out;

	public String nextToken() throws IOException {
		while (in == null || !in.hasMoreTokens()) {
			in = new StringTokenizer(br.readLine());
		}
		return in.nextToken();
	}

	public int nextInt() throws IOException {
		return Integer.parseInt(nextToken());
	}

	public double nextDouble() throws IOException {
		return Double.parseDouble(nextToken());
	}

	public long nextLong() throws IOException {
		return Long.parseLong(nextToken());
	}

	public static void main(String[] args) throws IOException {
		new Main().run();
	}

} public class Main {

	String fileName = "prizes";

	public void solve() throws IOException {
		int n = nextInt();
		int ans[] = new int[n];
		int[][] a = new int[2][n];
		int[][] sum = new int[2][n];
		for (int i = 0; i < 2; i++)
			for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			}
		for (int i = 0; i < n; i++)
			ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i];
		int max = ans[0];
		for (int ktr = 0; ktr < ans.length; ktr++) {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		}
		out.print(max);

	}

	public void run() {
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	BufferedReader br;
	StringTokenizer in;
	static PrintWriter out;

	public String nextToken() throws IOException {
		while (in == null || !in.hasMoreTokens()) {
			in = new StringTokenizer(br.readLine());
		}
		return in.nextToken();
	}

	public int nextInt() throws IOException {
		return Integer.parseInt(nextToken());
	}

	public double nextDouble() throws IOException {
		return Double.parseDouble(nextToken());
	}

	public long nextLong() throws IOException {
		return Long.parseLong(nextToken());
	}

	public static void main(String[] args) throws IOException {
		new Main().run();
	}

} Main
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class Main {

	String fileName = "prizes";

	public void solve() throws IOException {
		int n = nextInt();
		int ans[] = new int[n];
		int[][] a = new int[2][n];
		int[][] sum = new int[2][n];
		for (int i = 0; i < 2; i++)
			for (int j = 0; j < n; j++) {
				a[i][j] = nextInt();
				if (j == 0)
					sum[i][j] = a[i][j];
				else
					sum[i][j] = sum[i][j - 1] + a[i][j];
			}
		for (int i = 0; i < n; i++)
			ans[i] = sum[0][i] + sum[1][n - 1] - sum[1][i] + a[1][i];
		int max = ans[0];
		for (int ktr = 0; ktr < ans.length; ktr++) {
			if (ans[ktr] > max) {
				max = ans[ktr];
			}
		}
		out.print(max);

	}

	public void run() {
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			out = new PrintWriter(System.out, true);
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	BufferedReader br;
	StringTokenizer in;
	static PrintWriter out;

	public String nextToken() throws IOException {
		while (in == null || !in.hasMoreTokens()) {
			in = new StringTokenizer(br.readLine());
		}
		return in.nextToken();
	}

	public int nextInt() throws IOException {
		return Integer.parseInt(nextToken());
	}

	public double nextDouble() throws IOException {
		return Double.parseDouble(nextToken());
	}

	public long nextLong() throws IOException {
		return Long.parseLong(nextToken());
	}

	public static void main(String[] args) throws IOException {
		new Main().run();
	}

}