7 359
Подписчики
-324 часа
-237 дней
-11330 день
Архив постов
from math import floor
from collections import defaultdict
def solution(balances, requests):
n = len(balances)
cashback_schedule = defaultdict(list)
last_timestamp = 0
for i, request in enumerate(requests):
parts = request.split()
action = parts[0]
timestamp = int(parts[1])
holder_id = int(parts[2]) - 1
if timestamp > last_timestamp:
for ts in range(last_timestamp + 1, timestamp + 1):
for acc_id, cashback in cashback_schedule.pop(ts, []):
if 0 <= acc_id < n:
balances[acc_id] += cashback
last_timestamp = timestamp
if holder_id < 0 or holder_id >= n:
return [-i - 1]
if action == "deposit":
amount = int(parts[3])
balances[holder_id] += amount
elif action == "withdraw":
amount = int(parts[3])
if balances[holder_id] < amount:
return [-i - 1]
balances[holder_id] -= amount
cashback = floor(amount * 0.02)
cashback_time = timestamp + 86400
cashback_schedule[cashback_time].append((holder_id, cashback))
return balances
//Triology✅✅
q2
def findOptimalPair(n, m, blockedPositions):
from collections import deque
grid = [[0] * m for _ in range(n)]
b = set()
for r, c in blockedPositions:
b.add((r - 1, c - 1))
grid[r - 1][c - 1] = -1
d = [[float('inf')] * m for _ in range(n)]
queue = deque()
for r, c in b:
queue.append((r, c))
d[r][c] = 0
directions = [(1, 0), (-1, 0), (0, 1), (0, -1)]
while queue:
r, c = queue.popleft()
for dr, dc in directions:
nr, nc = r + dr, c + dc
if 0 <= nr < n and 0 <= nc < m and (nr, nc) not in b:
if d[nr][nc] > d[r][c] + 1:
d[nr][nc] = d[r][c] + 1
queue.append((nr, nc))
def solve(min_strength):
visited = [[False] * m for _ in range(n)]
if (0, 0) in b or d[0][0] < min_strength:
return -1
q = deque()
q.append((0, 0, 1))
visited[0][0] = True
while q:
r, c, steps = q.popleft()
if (r, c) == (n - 1, m - 1):
return steps
for dr, dc in directions:
nr, nc = r + dr, c + dc
if 0 <= nr < n and 0 <= nc < m and not visited[nr][nc] and (nr, nc) not in b:
if d[nr][nc] >= min_strength:
visited[nr][nc] = True
q.append((nr, nc, steps + 1))
return -1
low, high = 0, n + m
bs, ms = -1, -1
while low <= high:
mid = (low + high) // 2
ans = solve(mid)
if ans != -1:
bs = mid
ms = ans
low = mid + 1
else:
high = mid - 1
if bs == -1:
return [-1, -1]
return [bs, ms]
#CISCO
findOptimalPair✅
+6
CTS Java slots✅✅
SQL+JAVA+PROJECTS✅✅
Contact : @MLCODER2
COGNIZANT Java All slot s done & dusted✅✅
SQL+JAVA+PROJECTS✅✅
Contact : @MLCODER2
+8
CTS JAVA All slots done successfully✅✅
100% clearance for any exam✅
Contact : @MLCODER2
ONEC1 exam cleared & got Interview mail ✅✅
Contact: @MLCODER2
Cognizant Technical slots Available ✅✅
100% CLEARANCE FOR YOUR EXAM ✅
Contact: @MLCODER2
+2
HCL Tech Interview done & dusted✅✅
Role : Java Developer Role✅✅
JAVA + SQL✅
Contact : @MLCODER2
