package question;/*** @author Roderland* @since 1.0*/public class Question1802 {public static void main(String[] args) {System.out.println(new Question1802().maxValue(1,0,24));}public int maxValue(int n, int index, int maxSum) {maxSum-=n;int i=0;int j=maxSum;int res=0;while (i<=j) {int m=(i+j)/2;if (f(n, index, maxSum, m)) {i=m+1;res=m;} else {j=m-1;}}return res+1;}public boolean f(int n, int index, int maxSum, int x) {long left=Math.min(x, index);long right=Math.min(x, n-index-1);left=(2*x-left)*(left+1)/2;right=(2*x-right)*(right+1)/2;long res=left+right-x;return res<=maxSum;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。