搞出来了,有一个测试点有问题一直过不了,貌似因为他有一行里包含了两个数,所以在转换成int的时候报错了,这也意味着那个测试点里面的数没有n+1行输入,所以也不能用for循环,得改成while循环,然后以列表读取。
n,m=map(int, input().split()) a=[] while len(a)<n: a+=list(map(int, input().split())) a.sort() res=0 for i in range(1,n): x=a[i-1] y=a[i] ans=0 for j in range(m): if x>>j&1==y>>j&1: ans+=1<<j res=max(res,ans) print(res)