Leetcode with dani – Telegram
Leetcode with dani
1.31K subscribers
196 photos
14 videos
56 files
240 links
Join us and let's tackle leet code questions together: improve your problem-solving skills
Preparing for coding interviews
learning new algorithms and data structures
connect with other coding enthusiasts
Download Telegram
can u solve this question? the logic is simple but it may take while to figure it out

70. Climbing Stairs
Solved
Easy
You are climbing a staircase. It takes n steps to reach the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

Example 1:

Input: n = 2
Output: 2
Explanation: There are two ways to climb to the top.
1. 1 step + 1 step
2. 2 steps
Example 2:

Input: n = 3
Output: 3
Explanation: There are three ways to climb to the top.
1. 1 step + 1 step + 1 step
2. 1 step + 2 steps
3. 2 steps + 1 step

Constraints:

1 <= n <= 45

see the question in leetcode
Leetcode with dani
What if the question asks to use 1,2 and 3 steps?
a, b, c = 1, 2, 4 
for i in range(4, n+1):
a, b, c = b, c, a + b + c
return c
💯51
Hey Developers! Let me introduce you to an amazing project: an unlimited free phone verification API created by my friend Yonatan. Check it out!
Forwarded from Yonathan
Built something cool! 🚀

Verify is my personal project—an API for free, unlimited phone verification using Telegram. No SMS costs, simple integration, and optional self-hosting.

🔗 Check it out: https://verify.yonathan.tech

Would love your feedback!
if u have better ideas, i would love to hear and collaborate with u .please feel free to contact me with this bot @zprogramming_bot
😁161
here is the first question of A2SV weekly contest For G6 i will post each question with their answer

🖊 A. Pens and Pencils

Problem Statement

Tomorrow is a difficult day for Polycarp: he has to attend lectures and practical classes at the university! He writes lectures with pens and practicals with pencils.

• One pen lasts for c lectures.
• One pencil lasts for d practicals.
• His pencil case can hold at most k writing tools in total.

Can Polycarp pack enough pens and pencils to cover the day?

---

Input Format

First line: An integer t (1 ≤ t ≤ 100), the number of test cases.
Each test case: Five integers a, b, c, d, k
a: Number of lectures
b: Number of practical classes
c: Lectures per pen
d: Practicals per pencil
k: Maximum tools in the pencil case

---

Output Format

For each test case, output:

• Two integers x y, where:
x: Number of pens
y: Number of pencils
• Or output -1 if it’s not possible to pack enough tools.

---

Example Input

3
7 5 4 5 8
7 5 4 5 2
20 53 45 26 4


Example Output

2 1
-1
1 3


---

Explanation

Test Case 1:
– Needs ceil(7/4) = 2 pens and ceil(5/5) = 1 pencil.
– Total = 2 + 1 = 3 ≤ 8 (possible).

Test Case 2:
– Needs 2 pens and 1 pencil.
– Total = 2 + 1 = 3 > 2 (not possible).

Test Case 3:
– Needs 1 pen (ceil(20/45)) and 3 pencils (ceil(53/26)).
– Total = 1 + 3 = 4 = 4 (possible).

---

Sample Code (Python)

t = int(input())
for _ in range(t):
a, b, c, d, k = map(int, input().split())
pens_needed = (a + c - 1) // c # Ceiling of a/c
pencils_needed = (b + d - 1) // d # Ceiling of b/d
if pens_needed + pencils_needed <= k:
print(pens_needed, pencils_needed)
else:
print(-1)
3
the second question
B. Integer Points

Problem (brief)

DLS draws n lines of the form y = x + pᵢ and JLS draws m lines of the form y = -x + qⱼ . Count how many pairs (one from each set) intersect at integer coordinates (x, y).

Key Fact

The intersection of y = x + p and y = -x + q is given by:

x = q - p / 2,   y = q + p / 2


For both x and y to be integers, q and p must have the same parity.

Solution

1. Count the number of even and odd integers in sets P and Q.
2. The total number of intersecting pairs is calculated as:

Answer = (even_P × even_Q) + (odd_P × odd_Q)


Implementation

for _ in range(int(input())):
n, P = int(input()), list(map(int, input().split()))
m, Q = int(input()), list(map(int, input().split()))

eP = sum(p % 2 == 0 for p in P) # Count evens in P
oP = n - eP # Count odds in P
eQ = sum(q % 2 == 0 for q in Q) # Count evens in Q
oQ = m - eQ # Count odds in Q

print(eP * eQ + oP * oQ)


Example

Input

3
3
1 3 2
2
0 3
1
1
1
1
1
2
1
1


Output

3
1
0
6
C. Labs (Simplified)

You have n² labs numbered from 1 (lowest) to n² (highest).

Any lab u can send 1 unit of water to any lower lab v if u > v .

Problem Statement

Split the labs into n groups of size n .

For each ordered pair of groups (A, B) , let f(A, B) be the total units sendable from all labs in A to all in B .

Objective: Maximize the minimum f(A, B) over all A ≠ B .

Output

Print any grouping that achieves this.

Example

Input:
3


Output (one possible grouping):
2 8 5
9 3 4
7 6 1


Here, n = 3 , meaning there are labs numbered from 1 to 9.

Every group has 3 labs.

The smallest f(A, B) among all 6 ordered pairs is 4, which is optimal.
Solution
def main():
n = int(input())
groups = [[] for _ in range(n)]
num = 1

for row in range(n):
# decide direction: left‑to‑right on even rows, right‑to‑left on odd
cols = range(n) if row % 2 == 0 else range(n - 1, -1, -1)
for col in cols:
groups[col].append(num)
num += 1

# output
for g in groups:
print(*g)

if __name__ == "__main__":
main()
5
😁10🤣4
🧩 D. Add on a Tree (Simplified)

You are given a tree (a connected graph with no cycles) of n nodes. Each edge in the tree initially has a value of 0.

You can perform the following operation:

> Choose any two leaf nodes (nodes connected to only one other node), and a real number x.
> Then, add x to all edges on the simple path between these two leaf nodes.

🔁 You can repeat this operation as many times as you want, with different pairs of leaves and values.

---

Question

Is it possible to reach any possible configuration of real numbers on the edges using a finite number of such operations?

Print:

YES — if it’s always possible for this tree
NO — if there exists any configuration that you cannot reach

---

📥 Input

• First line: n — number of nodes (2 ≤ n ≤ 10⁵)
• Next n-1 lines: two integers u and v, meaning an edge between node u and node v

It is guaranteed that the graph is a tree.

---

📤 Output

• Print YES or NO

---

📌 Examples

Input

2
1 2


Output

YES
Leetcode with dani
🧩 D. Add on a Tree (Simplified) You are given a tree (a connected graph with no cycles) of n nodes. Each edge in the tree initially has a value of 0. You can perform the following operation: > Choose any two leaf nodes (nodes connected to only one other…
Answer :
def main():
def iinp(): return (int(input()))
def linp(): return (list(map(int, input().split())))
n = iinp()
arr = [0 for i in range(n+1)]
for i in range(n-1):
u,v = linp()
arr[u] += 1
arr[v] += 1
for i in arr:
if i ==2:
print("NO")
return
print("YES")
main()
E. Nauuo and Cards (Simplified Version)

Nauuo has 2n cards:

n real cards numbered from 1 to n

n empty cards, represented as 0

These cards are randomly shuffled and split into:

Nauuo’s hand → a list of n cards

The pile → another list of n cards, ordered top to bottom

Operation
She can:

Choose any card from her hand, and
Play it — move it to the bottom of the pile,
Then draw the top card of the pile into her hand.

She wants the pile to end up as [1, 2, 3, ..., n] (from top to bottom) as fast as possible.
Leetcode with dani
E. Nauuo and Cards (Simplified Version) Nauuo has 2n cards: n real cards numbered from 1 to n n empty cards, represented as 0 These cards are randomly shuffled and split into: Nauuo’s hand → a list of n cards The pile → another list of n cards, ordered…
def main():
n = int(input().strip())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

pos = [0] * (n + 1)
for idx in range(n):
if b[idx]:
pos[b[idx]] = idx + 1

if pos[1] != 0:
i = 2
while i <= n and pos[i] == pos[1] + i - 1:
i += 1
if i - 1 >= 1 and pos[i - 1] == n:
j = i
while j <= n:
if pos[j] != 0 and pos[j] > j - i:
break
j += 1
else:
print(n - i + 1)
return

ans = 0
for card in range(1, n + 1):
if pos[card] != 0:
wait = pos[card] - card + 1
if wait > ans:
ans = wait

print(ans + n)

if __name__ == "__main__":
main()
😁11👨‍💻2