import os
import sys
# 请在此输入您的代码
n=int(input())
st=input()
for i in range(100000):
if bin(i)[2:] not in st:
print(i)
break
import os
import sys
# 初始化变量,读取输入
n, k = map(int, input().split())
lis = []
for i in range(n):
lis.append(list(map(int, input().split())))
# 定义一个函数,用于判断在给定的n下是否能满足特定条件
def find(n):
"""
计算每个矩形中可以切割出的边长为n的正方形的数量之和,并判断是否至少达到k个。
参数:
n (int): 正方形的边长
返回:
bool: 如果切割出的正方形数量之和达到或超过k,则返回True,否则返回False。
"""
ans = 0
for i, j in lis:
ans += (i // n) * (j // n)
if ans >= k:
return True
return False
# 使用二分查找法寻找最大边长
a = 1
b = 10000
while a <= b:
mid = (a + b) // 2
if not find(mid):
b = mid - 1
else:
a = mid + 1
# 输出最大边长减一,因为最后一次使find函数返回True的边长是a-1
print(a-1)
冒泡排序
import os
import sys
# 请在此输入您的代码
n=int(input())
lis=list(map(int,input().split()))
m=0
for i in range(n-1):
for j in range(i+1,n):
m=max(m,(abs(i-j)+abs(lis[i]-lis[j])))
print(m)
n,m=map(int,input().split())
r,c=map(int,input().split())
ans=[[0]*m for i in range(n)]
x,y=0,0
value=1
ans[x][y]=value
while value < n*m: #输出完最后一个数循环才结束
while y+1<m and ans[x][y+1]==0: #不越右界m-1、下一个数是0
value+=1
y+=1
ans[x][y]=value
while x+1<n and ans[x+1][y]==0: #不越下界、下一个数是0
value+=1
x+=1
ans[x][y]=value
while y-1>=0 and ans[x][y-1]==0: #不越左界0、下一个数是0
value+=1
y-=1
ans[x][y]=value
while x-1>=0 and ans[x-1][y]==0: #不越上界、下一个数是0
value+=1
x-=1
ans[x][y]=value
print(ans[r-1][c-1])