using System; using System.Linq; public class Program { public static void Main() { int t = int.Parse(Console.ReadLine()); int n = int.Parse(Console.ReadLine()); int[] c = Console.ReadLine().Split(' ').Select(element => int.Parse(element)).ToArray(); int[] v = Console.ReadLine().Split(' ').Select(element => int.Parse(element)).ToArray(); solve(t, c, v); } private static void solve(int t, int[] c, int[] v) { int[] dp = new int[t+1]; for(int i=0;i0) { for(int j=dp.Length-1;j>=c[i];j--) { dp[j] = Math.Max(dp[j], dp[j-c[i]]+current); } current /= 2; } } Console.WriteLine(dp[t]); } }