4 条题解

  • 4
    @ 2024-12-18 11:34:14
    def query(l,r,x) :
        cnt=0
        while l<=r :
            cnt+=1
            mid=(l+r)>>1
            if a[mid]==x:return cnt
            if f:
                if a[mid]%2==1 or a[mid]<x:r=mid-1
                else:l=mid+1
            else: 
                if a[mid]%2==0 or a[mid]>x:l=mid+1
                else:r=mid-1
        return -1
    a=list(map(int, input().split()))
    key=int(input())
    div=0
    for i in range(len(a)):
        if a[i]%2==1:div=i;break
    cnt=0
    f=key%2|1
    cnt=query(0,len(a)-1,key)
    if cnt==-1:
        print("NO")
    else:
        print("YES\n"+str(cnt))
    
    • 1
      @ 2024-12-18 11:47:58
      a = list(map(int, input().split()))
      key = int(input())
      i=0;j=len(a)-1
      cnt=0
      while i<=j:
          m=(i+j)//2
          cnt=cnt+1
          if key==a[m]:
             break
          if key%2==1:
              if a[m]%2==0 or key>a[m]:
                 i=m+1    
              else:
                 j=m-1
          else:
              if a[m]%2==1 or key>a[m]:
                  j=m-1
              else:
                  i=m+1
      if i<=j:
          print("YES")
          print(cnt)
      else:
          print("NO")
      
      • 1
        @ 2024-12-18 11:43:12
        a = list(map(int, input().split()))
        key = int(input())
        i=0
        j=len(a)-1
        cnt=0
        while i<=j:
            m=(i+j)//2
            cnt+=1
            if key==a[m]:
                break
            if key%2==1:
                if a[m]%2==0:
                    i=m+1
                else:
                    if key>a[m]:
                        i=m+1
                    else:
                        j=m-1
            else:
                if a[m]%2==1:
                    j=m-1
                else:
                    if key>a[m]:
                        j=m-1
                    else:
                        i=m+1
        if i<=j:
            print("YES")
            print(cnt)
        else:
            print("NO")
        
        • 0
          @ 2024-12-18 11:54:05
          a=list(map(int, input().split()));key=int(input())
          i=0;j=len(a)-1;cnt=0
          while i<=j:
              m=(i+j)//2
              cnt+=1
              if key==a[m]:break
              if key%2==1:
                  if a[m]%2==0 or key>a[m]:i=m+1
                  else:j=m-1
              else:
                  if a[m]%2==1 or key >a[m]:j=m-1
                  else:i=m+1
          if i<=j:print('YES');print(cnt)    
          else:print('NO')
          
          • 1

          信息

          ID
          803
          时间
          1000ms
          内存
          256MiB
          难度
          5
          标签
          递交数
          667
          已通过
          234
          上传者