import java.util.*;

class Main {
  
  public static List<Integer> parseAndSort(String[] sides) {
    List<Integer> list = new ArrayList<Integer>();
    for(String s: sides) {
      list.add(Integer.parseInt(s));
    }
    Collections.sort(list, Collections.reverseOrder());
    return list;
  }
  
  public static boolean isDrawPolygon(List<Integer> sideList) {
    int sum = 0;
    for(int i = 1; i < sideList.size(); i++) {
      sum += sideList.get(i);
    }
    return sideList.get(0) < sum ? true : false;
  }
      
  
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    while(scanner.hasNextLine()) {
      int n = Integer.parseInt(scanner.nextLine());
      
      String[] sides = scanner.nextLine().split(" ", 0);
      
      List<Integer> sideList = parseAndSort(sides);
      String result = isDrawPolygon(sideList) ? "Yes" : "No";
      System.out.println(result);
    }
  }
} import java.util.*; util.* java class Main {
  
  public static List<Integer> parseAndSort(String[] sides) {
    List<Integer> list = new ArrayList<Integer>();
    for(String s: sides) {
      list.add(Integer.parseInt(s));
    }
    Collections.sort(list, Collections.reverseOrder());
    return list;
  }
  
  public static boolean isDrawPolygon(List<Integer> sideList) {
    int sum = 0;
    for(int i = 1; i < sideList.size(); i++) {
      sum += sideList.get(i);
    }
    return sideList.get(0) < sum ? true : false;
  }
      
  
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    while(scanner.hasNextLine()) {
      int n = Integer.parseInt(scanner.nextLine());
      
      String[] sides = scanner.nextLine().split(" ", 0);
      
      List<Integer> sideList = parseAndSort(sides);
      String result = isDrawPolygon(sideList) ? "Yes" : "No";
      System.out.println(result);
    }
  }
} Main public static List<Integer> parseAndSort(String[] sides) {
    List<Integer> list = new ArrayList<Integer>();
    for(String s: sides) {
      list.add(Integer.parseInt(s));
    }
    Collections.sort(list, Collections.reverseOrder());
    return list;
  } parseAndSort {
    List<Integer> list = new ArrayList<Integer>();
    for(String s: sides) {
      list.add(Integer.parseInt(s));
    }
    Collections.sort(list, Collections.reverseOrder());
    return list;
  } List<Integer> list = new ArrayList<Integer>(); list new ArrayList<Integer>() for(String s: sides) {
      list.add(Integer.parseInt(s));
    } String s sides {
      list.add(Integer.parseInt(s));
    } {
      list.add(Integer.parseInt(s));
    } list.add(Integer.parseInt(s)) list.add list Integer.parseInt(s) Integer.parseInt Integer s Collections.sort(list, Collections.reverseOrder()) Collections.sort Collections list Collections.reverseOrder() Collections.reverseOrder Collections return list; list String[] sides sides public static boolean isDrawPolygon(List<Integer> sideList) {
    int sum = 0;
    for(int i = 1; i < sideList.size(); i++) {
      sum += sideList.get(i);
    }
    return sideList.get(0) < sum ? true : false;
  } isDrawPolygon {
    int sum = 0;
    for(int i = 1; i < sideList.size(); i++) {
      sum += sideList.get(i);
    }
    return sideList.get(0) < sum ? true : false;
  } int sum = 0; sum 0 for(int i = 1; i < sideList.size(); i++) {
      sum += sideList.get(i);
    } int i = 1; int i = 1; i 1 i < sideList.size() i sideList.size() sideList.size sideList i++ i++ i {
      sum += sideList.get(i);
    } {
      sum += sideList.get(i);
    } sum += sideList.get(i) sum sideList.get(i) sideList.get sideList i return sideList.get(0) < sum ? true : false; sideList.get(0) < sum ? true : false sideList.get(0) < sum sideList.get(0) sideList.get sideList 0 sum true false List<Integer> sideList sideList public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    while(scanner.hasNextLine()) {
      int n = Integer.parseInt(scanner.nextLine());
      
      String[] sides = scanner.nextLine().split(" ", 0);
      
      List<Integer> sideList = parseAndSort(sides);
      String result = isDrawPolygon(sideList) ? "Yes" : "No";
      System.out.println(result);
    }
  } main {
    Scanner scanner = new Scanner(System.in);
    
    while(scanner.hasNextLine()) {
      int n = Integer.parseInt(scanner.nextLine());
      
      String[] sides = scanner.nextLine().split(" ", 0);
      
      List<Integer> sideList = parseAndSort(sides);
      String result = isDrawPolygon(sideList) ? "Yes" : "No";
      System.out.println(result);
    }
  } Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) while(scanner.hasNextLine()) {
      int n = Integer.parseInt(scanner.nextLine());
      
      String[] sides = scanner.nextLine().split(" ", 0);
      
      List<Integer> sideList = parseAndSort(sides);
      String result = isDrawPolygon(sideList) ? "Yes" : "No";
      System.out.println(result);
    } scanner.hasNextLine() scanner.hasNextLine scanner {
      int n = Integer.parseInt(scanner.nextLine());
      
      String[] sides = scanner.nextLine().split(" ", 0);
      
      List<Integer> sideList = parseAndSort(sides);
      String result = isDrawPolygon(sideList) ? "Yes" : "No";
      System.out.println(result);
    } int n = Integer.parseInt(scanner.nextLine()); n Integer.parseInt(scanner.nextLine()) Integer.parseInt Integer scanner.nextLine() scanner.nextLine scanner String[] sides = scanner.nextLine().split(" ", 0); sides scanner.nextLine().split(" ", 0) scanner.nextLine().split scanner.nextLine() scanner.nextLine scanner " " 0 List<Integer> sideList = parseAndSort(sides); sideList parseAndSort(sides) parseAndSort sides String result = isDrawPolygon(sideList) ? "Yes" : "No"; result isDrawPolygon(sideList) ? "Yes" : "No" isDrawPolygon(sideList) isDrawPolygon sideList "Yes" "No" System.out.println(result) System.out.println System.out System System.out result String[] args args
import java.util.*;

class Main {
  
  public static List<Integer> parseAndSort(String[] sides) {
    List<Integer> list = new ArrayList<Integer>();
    for(String s: sides) {
      list.add(Integer.parseInt(s));
    }
    Collections.sort(list, Collections.reverseOrder());
    return list;
  }
  
  public static boolean isDrawPolygon(List<Integer> sideList) {
    int sum = 0;
    for(int i = 1; i < sideList.size(); i++) {
      sum += sideList.get(i);
    }
    return sideList.get(0) < sum ? true : false;
  }
      
  
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    while(scanner.hasNextLine()) {
      int n = Integer.parseInt(scanner.nextLine());
      
      String[] sides = scanner.nextLine().split(" ", 0);
      
      List<Integer> sideList = parseAndSort(sides);
      String result = isDrawPolygon(sideList) ? "Yes" : "No";
      System.out.println(result);
    }
  }
}