N = int(input()) times = [list(map(int,input().split())) for i in range(N)] yukio = 0 yukiko = 0 max_yukiko = 0 for i in times: if yukio>yukiko: yukiko+=i[1] else: yukio+=i[0] max_yukiko+=i[1] times.sort() dp = [0]*yukio for i in times: for j in range(yukio-1,i[0]-1,-1): dp[j] = max(dp[j],dp[j-i[0]]+i[1]) min_time = max(yukio,yukiko) i=0 while i