import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        TestCase testCase = readFromInput();

        final String result = process(testCase);

        output(result);
    }

    private static TestCase readFromInput() {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        List<Integer> L = new ArrayList<>();
        for (int i = 0; i < N; ++i) {
            L.add(sc.nextInt());
        }

        sc.close();
        return new TestCase(N, L);
    }

    public static String process(TestCase testCase) {
        List<Integer> L = testCase.L;

        int largest = 0;
        int sum = 0;

        for (int side : L) {
            largest = Math.max(largest, side);
            sum += side;
        }

        return (largest < (sum - largest)) ? YES : NO;
    }

    private static void output(String result) {
        System.out.println(result);
    }

    public static class TestCase {
        final int N;
        final List<Integer> L;

        public TestCase(int N, List<Integer> L) {
            this.N = N;
            this.L = L;
        }
    }
} import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        TestCase testCase = readFromInput();

        final String result = process(testCase);

        output(result);
    }

    private static TestCase readFromInput() {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        List<Integer> L = new ArrayList<>();
        for (int i = 0; i < N; ++i) {
            L.add(sc.nextInt());
        }

        sc.close();
        return new TestCase(N, L);
    }

    public static String process(TestCase testCase) {
        List<Integer> L = testCase.L;

        int largest = 0;
        int sum = 0;

        for (int side : L) {
            largest = Math.max(largest, side);
            sum += side;
        }

        return (largest < (sum - largest)) ? YES : NO;
    }

    private static void output(String result) {
        System.out.println(result);
    }

    public static class TestCase {
        final int N;
        final List<Integer> L;

        public TestCase(int N, List<Integer> L) {
            this.N = N;
            this.L = L;
        }
    }
} Main private static final String YES = "Yes"; YES "Yes" private static final String NO = "No"; NO "No" public static void main(String[] args) {
        TestCase testCase = readFromInput();

        final String result = process(testCase);

        output(result);
    } main {
        TestCase testCase = readFromInput();

        final String result = process(testCase);

        output(result);
    } TestCase testCase = readFromInput(); testCase readFromInput() readFromInput final String result = process(testCase); result process(testCase) process testCase output(result) output result String[] args args private static TestCase readFromInput() {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        List<Integer> L = new ArrayList<>();
        for (int i = 0; i < N; ++i) {
            L.add(sc.nextInt());
        }

        sc.close();
        return new TestCase(N, L);
    } readFromInput {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        List<Integer> L = new ArrayList<>();
        for (int i = 0; i < N; ++i) {
            L.add(sc.nextInt());
        }

        sc.close();
        return new TestCase(N, L);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc List<Integer> L = new ArrayList<>(); L new ArrayList<>() for (int i = 0; i < N; ++i) {
            L.add(sc.nextInt());
        } int i = 0; int i = 0; i 0 i < N i N ++i ++i i {
            L.add(sc.nextInt());
        } {
            L.add(sc.nextInt());
        } L.add(sc.nextInt()) L.add L sc.nextInt() sc.nextInt sc sc.close() sc.close sc return new TestCase(N, L); new TestCase(N, L) public static String process(TestCase testCase) {
        List<Integer> L = testCase.L;

        int largest = 0;
        int sum = 0;

        for (int side : L) {
            largest = Math.max(largest, side);
            sum += side;
        }

        return (largest < (sum - largest)) ? YES : NO;
    } process {
        List<Integer> L = testCase.L;

        int largest = 0;
        int sum = 0;

        for (int side : L) {
            largest = Math.max(largest, side);
            sum += side;
        }

        return (largest < (sum - largest)) ? YES : NO;
    } List<Integer> L = testCase.L; L testCase.L testCase testCase.L int largest = 0; largest 0 int sum = 0; sum 0 for (int side : L) {
            largest = Math.max(largest, side);
            sum += side;
        } int side L {
            largest = Math.max(largest, side);
            sum += side;
        } {
            largest = Math.max(largest, side);
            sum += side;
        } largest = Math.max(largest, side) largest Math.max(largest, side) Math.max Math largest side sum += side sum side return (largest < (sum - largest)) ? YES : NO; (largest < (sum - largest)) ? YES : NO (largest < (sum - largest)) largest (sum - largest) sum largest YES NO TestCase testCase testCase private static void output(String result) {
        System.out.println(result);
    } output {
        System.out.println(result);
    } System.out.println(result) System.out.println System.out System System.out result String result result public static class TestCase {
        final int N;
        final List<Integer> L;

        public TestCase(int N, List<Integer> L) {
            this.N = N;
            this.L = L;
        }
    } TestCase final int N; N final List<Integer> L; L public TestCase(int N, List<Integer> L) {
            this.N = N;
            this.L = L;
        } TestCase {
            this.N = N;
            this.L = L;
        } this.N = N this.N this this.N N this.L = L this.L this this.L L int N N List<Integer> L L public class Main {
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        TestCase testCase = readFromInput();

        final String result = process(testCase);

        output(result);
    }

    private static TestCase readFromInput() {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        List<Integer> L = new ArrayList<>();
        for (int i = 0; i < N; ++i) {
            L.add(sc.nextInt());
        }

        sc.close();
        return new TestCase(N, L);
    }

    public static String process(TestCase testCase) {
        List<Integer> L = testCase.L;

        int largest = 0;
        int sum = 0;

        for (int side : L) {
            largest = Math.max(largest, side);
            sum += side;
        }

        return (largest < (sum - largest)) ? YES : NO;
    }

    private static void output(String result) {
        System.out.println(result);
    }

    public static class TestCase {
        final int N;
        final List<Integer> L;

        public TestCase(int N, List<Integer> L) {
            this.N = N;
            this.L = L;
        }
    }
} public class Main {
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        TestCase testCase = readFromInput();

        final String result = process(testCase);

        output(result);
    }

    private static TestCase readFromInput() {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        List<Integer> L = new ArrayList<>();
        for (int i = 0; i < N; ++i) {
            L.add(sc.nextInt());
        }

        sc.close();
        return new TestCase(N, L);
    }

    public static String process(TestCase testCase) {
        List<Integer> L = testCase.L;

        int largest = 0;
        int sum = 0;

        for (int side : L) {
            largest = Math.max(largest, side);
            sum += side;
        }

        return (largest < (sum - largest)) ? YES : NO;
    }

    private static void output(String result) {
        System.out.println(result);
    }

    public static class TestCase {
        final int N;
        final List<Integer> L;

        public TestCase(int N, List<Integer> L) {
            this.N = N;
            this.L = L;
        }
    }
} Main
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    private static final String YES = "Yes";
    private static final String NO = "No";

    public static void main(String[] args) {
        TestCase testCase = readFromInput();

        final String result = process(testCase);

        output(result);
    }

    private static TestCase readFromInput() {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        List<Integer> L = new ArrayList<>();
        for (int i = 0; i < N; ++i) {
            L.add(sc.nextInt());
        }

        sc.close();
        return new TestCase(N, L);
    }

    public static String process(TestCase testCase) {
        List<Integer> L = testCase.L;

        int largest = 0;
        int sum = 0;

        for (int side : L) {
            largest = Math.max(largest, side);
            sum += side;
        }

        return (largest < (sum - largest)) ? YES : NO;
    }

    private static void output(String result) {
        System.out.println(result);
    }

    public static class TestCase {
        final int N;
        final List<Integer> L;

        public TestCase(int N, List<Integer> L) {
            this.N = N;
            this.L = L;
        }
    }
}
