您的位置:首页 > 其它

蓝桥杯练习系统真题14——高僧斗法

2017-04-04 20:30 323 查看
import java.util.*;
public class Main
{
static boolean f(int[] x)
{
String[] y = new String[x.length/2];
int m = 0;
for(int i=0; i<x.length/2; i++) {
y[i] = Integer.toBinaryString(x[i*2+1] - x[i*2] - 1);
if(y[i].length()>m) m = y[i].length();
}

for(int i=0; i<m; i++){
boolean tag = true;
for(int j=0; j<y.length; j++){
int k = y[j].length() - (m-i);
if(k>=0 && y[j].charAt(k)=='1') tag = !tag;
}
if(tag==false) return false;
}

return true;
}
static int finalold=0;
static int finalk=0;
static void test(int[] x)
{
finalold=x[x.length-1];
for(int i=0; i<x.length-1; i++){
for(int k=x[i]+1; k<x[i+1]; k++){
int old = x[i];
x[i] = k;
try{
if(f(x))
{
if(finalold>old)
{
finalold=old;
finalk=k;
}
}

}
finally{
x[i] = old;
}
}
}
}

public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);

String[] ss = scan.nextLine().split(" ");
int[] x = new int[ss.length];
for(int i=0; i<ss.length; i++) x[i] = Integer.parseInt(ss[i]);

test(x);
System.out.println(finalold + " " + finalk);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: