Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #bin search
- #1j
- def ok(mx):
- for i in range(n - mx + 1):
- if a[i] == a[i + mx - 1]:
- return True
- return False
- n = int(input())
- a = sorted(list(map(int, input().split())))
- l = 0
- r = n
- ans = 0
- while l <= r:
- mid = (l + r) // 2
- if ok(mid):
- l = mid + 1
- ans = mid
- else:
- r = mid - 1
- print(n - ans)
- #2m
- def ok(op, s, k):
- count_0, count_1 = 0, 0
- for i in range(k):
- if s[i] == "0":
- count_0 += 1
- else:
- count_1 += 1
- min_replace = min(count_0, count_1)
- for i in range(len(s) - k):
- if s[i] == "0":
- count_0 -= 1
- else:
- count_1 -= 1
- if s[i + k] == "0":
- count_0 += 1
- else:
- count_1 += 1
- min_replace = min(min_replace, min(count_0, count_1))
- return min_replace <= op
- if __name__ == "__main__":
- s = input()
- n = int(input())
- k = int(input())
- l = 0
- r = n
- ans = 0
- while l <= r:
- mid = (l + r) // 2
- if ok(mid, s, k):
- ans = mid
- r = mid - 1
- else:
- l = mid + 1
- #3s
- n, k = map(int, input().split())
- l = 1
- r = n * n
- def ok(pr):
- j = n
- cnt = 0
- for i in range(1, n + 1):
- while i * j > pr:
- j -= 1
- cnt += j
- return cnt <= k
- while l <= r:
- mid = (l + r) // 2
- if ok(mid):
- ans = mid
- l = mid + 1
- else:
- r = mid - 1
- print(ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement