def judge(n,fl) puts n if(fl == 1) e = 1 while(e <= $a[0]) if(e%2 == 1) n = ($a[e] - n) return 1 if(n < 0) else n -= $a[e] return 2 if(n < 0) end e += 1 puts n if(fl == 1) end return 0 end $a = `dd`.split("\n").map{|u|u.to_i} $za = 10**18 right = $a[1..3].max left = 0 r = 0 while (right - left > 1) mid = left + (right + left)/2 if(judge(mid, 0) == 1) left = mid elsif(judge(mid, 0) == 2) right = mid else puts $a[0] + 1 judge(mid,1) exit end r+=1 break if(r > 100000) end puts -1