using System.Numerics; public class Program { public static void Main() { //BigInteger num = BigInteger.Parse(Console.ReadLine() ?? string.Empty); int num = int.Parse(Console.ReadLine() ?? string.Empty); string[] moji = (Console.ReadLine() ?? string.Empty).Trim().Split(' '); string[] moji2 = (Console.ReadLine() ?? string.Empty).Trim().Split(' '); //string str = Console.ReadLine() ?? string.Empty; int[] ints = new int[num]; int comp = 0; int score = 0; for (int i = 0;i < num;i++) { if (moji2[i] == "0") { score += int.Parse(moji[i]); } else { ints[int.Parse(moji2[i])] += int.Parse(moji[i]); } comp += int.Parse(moji[i]); } Array.Reverse(ints); if (score >= comp/2 || score >= ints[0]) { Console.WriteLine("YES"); return; } else { Console.WriteLine("NO"); } } }