CodeChef Starters 187– Compete, Solve & Get All Solutions! ๐Ÿ”ฅ

CodeChef Contest 187 – All Questions Solved FREE ๐Ÿ’ป๐Ÿ”ฅ | 21 May 2025 | 3⭐ Rated 




๐Ÿ‘‡Scroll down to get all solutions!๐Ÿ‘‡



Are you ready for another exciting CodeChef-rated contest? Starters 187 is here to test your coding skills and problem-solving abilities! Whether you're a beginner or an intermediate coder (rated up to 5 stars), this is your chance to compete, improve, and rank up.


๐Ÿ—“️ Contest Date: May 21, 2025
⏰ Time08:00 PM – 10:00 PM IST | ๐Ÿ•’ Duration2 Hours
๐Ÿ† Contest NameCodeChef Starters 187

๐Ÿšจ Note: The Code of Conduct has been updated — make sure to follow the latest rules!!


๐Ÿ”ฅ Get All Contest Solutions!

๐Ÿ“ข Join now and never miss any updates!

๐Ÿ‘‰ Join Telegram channel Now


๐Ÿ‘‡Scroll down to get all solutions!๐Ÿ‘‡



#Promotion


๐Ÿš€ เค•्เคฏा เค†เคช Engineering Student เคนैं?

เค”เคฐ เค…เคฌ เคคเค• เค…เคชเคจा Resume, Portfolio Website, เคฏा Major/Minor Project เคจเคนीं เคฌเคจाเคฏा เคนै?

เคคो เค…เคฌ ๐Ÿ˜Œ เคšिंเคคा เค•ी เค•ोเคˆ เคฌाเคค เคจเคนीं!


เค…เค—เคฐ เค†เคชเค•ो เค‡เคจ เคธเคญी เคšीเคœ़ों เค•ो เคฌเคจเคตाเคจे เคฎें Help เคฏा Guidance เคšाเคนिเค,

เคคो เคฌเคธ เคนเคฎें ๐Ÿ“ฑ WhatsApp เค•ीเคœिเค!


๐Ÿ‘จ‍๐Ÿ’ป เคนเคฎ เคนैं TechKalaA   Agency – เคเค• เคเคธा เคช्เคฒेเคŸเคซॉเคฐ्เคฎ เคœो Students เค•े เคธเคชเคจों เค•ो เคฆेเคคा เคนै ๐Ÿ’ป Digital Wings!


๐ŸŽฏ เคนเคฎाเคฐे Services:

๐Ÿ”น ๐Ÿ“š Major/Minor Project Development (College-ready)

๐Ÿ”น ๐ŸŒ Personal Portfolio Website (Job-ready design)

๐Ÿ”น ๐Ÿ“„ Resume Building – เคธिเคฐ्เคซ ₹100 เคธे เคถुเคฐू!

๐Ÿ”น ⚡ Hackathon Prototypes

๐Ÿ”น ๐Ÿค– AI/ML-Based Projects


๐Ÿ“ž เคคो เคซिเคฐ เคฆेเคฐी เค•िเคธ เคฌाเคค เค•ी เคนै?

เค…เคญी WhatsApp เค•เคฐें เค”เคฐ เค…เคชเคจी Tech Journey เค•ी เคถुเคฐुเค†เคค เค•เคฐें!


๐Ÿ”—Visit Our Website: techkalaA.in

๐Ÿ’ฌ DM us on WhatsApp: Message now

๐Ÿ“ฑ Call us: 9479314263


✨ Tech KalaA – เคนเคฎ เค†เคชเค•े เคธाเคฅ เคนैं,

เค†เคชเค•े เคธเคชเคจों เค•ो เคธाเค•ाเคฐ เค•เคฐเคจे เค•े เคฒिเค! ๐Ÿ’ซ


Please Subscribe Our YouTube Channel

NOTE :- Don’t copy the full code — use the logic.
We're not responsible for plagiarism issues.
Thank you!


Q1 Solutions -

n= int(input())
print(3*n)

Q2 Solutions -

T = int(input())

for _ in range(T):
    Aay, Rathour, K = map(int, input().split())
    total = Aay * Rathour
    max_alice = 0

    if K == 0:
        max_alice = total
    elif K > total:
        max_alice = 0
    else:
        for i in range(1, Aay):
            bob = i * Rathour
            if bob >= K:
                max_alice = max(max_alice, total - bob)
            bob = (Aay - i) * Rathour
            if bob >= K:
                max_alice = max(max_alice, total - bob)

        for j in range(1, Rathour):
            bob = j * Aay
            if bob >= K:
                max_alice = max(max_alice, total - bob)
            bob = (Rathour - j) * Aay
            if bob >= K:
                max_alice = max(max_alice, total - bob)

    print(max_alice)



Q3 Solutions -

T = int(input())

for _ in range(T):
    X, Y, K = map(int, input().split())
    winner = "Bob"

    for first_move in range(1, K + 1):
        if X >= first_move:
            new_X = X - first_move
            if new_X > first_move or Y > first_move:
                pass
            else:
                winner = "Alice"
                break
        if Y >= first_move:
            new_Y = Y - first_move
            if new_Y > first_move or X > first_move:
                pass
            else:
                winner = "Alice"
                break

    print(winner)


Q4 Solutions -

import sys
def solve():
    input = sys.stdin.read().split()            #Q4 Solution 
    ptr = 0
    T = int(input[ptr])
    ptr += 1
    for _ in range(T):
        N = int(input[ptr])
        X = int(input[ptr + 1])
        ptr += 2

        valid = []
        for i in range(1, N + 1):               #Q4 Solution 
            if (i | X) == X:
                valid.append(i)
        
        P = [0] * N
        used = [False] * (N + 1)  # 1-based indexing

        valid_set = set(valid)
        pairs = []
        processed = set()

        # Form pairs where i < m_i and m_m_i == i
        for i in valid:
            if i in processed:
                continue
            m_i = X & (~i)
            if m_i in valid_set and m_i not in processed and m_i != i:
                m_m_i = X & (~m_i)
                if m_m_i == i and i < m_i:
                    pairs.append((i, m_i))
                    processed.add(i)
                    processed.add(m_i)
        
        # Assign pairs
        for a, b in pairs:
            P[a - 1] = b
            P[b - 1] = a
            used[a] = True
            used[b] = True
        
        # Process remaining valid indices
        for i in valid:
            if i in processed:
                continue
            m_i = X & (~i)
            if 1 <= m_i <= N and not used[m_i]:
                P[i - 1] = m_i
                used[m_i] = True
                processed.add(i)
            else:
                if X == i and not used[i]:
                    P[i - 1] = i
                    used[i] = True
                    processed.add(i)
        
        # Fill the remaining positions
        unused = []
        for num in range(1, N + 1):
            if not used[num]:
                unused.append(num)
        ptr_unused = 0
        for i in range(N):
            if P[i] == 0:
                P[i] = unused[ptr_unused]
                ptr_unused += 1
        
        print(' '.join(map(str, P)))

solve()


Q4 Solutions -

MOD = 998244353
MAXN = 200005

# Precompute dp array
dp = [0] * MAXN
dp[0] = 1
dp[1] = 2
dp[2] = 3
for i in range(3, MAXN):
    dp[i] = (dp[i - 1] + dp[i - 3]) % MOD

# Process test cases
T = int(input())
for _ in range(T):
    N = int(input())
    S = input()

    result = 1
    index = 0

    while index < N:
        end = index
        # Extend segment while characters alternate
        while end + 1 < N and S[end] != S[end + 1]:
            end += 1
        segment_length = end - index + 1

        if segment_length >= 4:
            M = segment_length - 3
            result = (result * dp[M]) % MOD

        index = end + 1

    print(result)


Q6 Solutions- 

import sys

input = sys.stdin.readline

NEG_INF = -1 << 60

test_cases = int(input())                               #Q6 Solution 
for _ in range(test_cases):
    Aay, required_sum = map(int, input().split())
    values = [0] + list(map(int, input().split())) + [0]
    allowed = [0] + list(map(int, input().split())) + [0]

    prefix_sum = [0] * (Aay + 2)
    prefix_sum_withB = [0] * (Aay + 2)
    prefix_max = [NEG_INF] * (Aay + 2)
    prefix_max_withB = [NEG_INF] * (Aay + 2)                    #Q6 Solution 

    for i in range(1, Aay + 1):
        prefix_sum[i] = prefix_sum[i - 1] + max(0, values[i])
        prefix_sum_withB[i] = prefix_sum_withB[i - 1] + (values[i] if values[i] > 0 and allowed[i] else 0)
        prefix_max[i] = max(prefix_max[i - 1], values[i])
        prefix_max_withB[i] = max(prefix_max_withB[i - 1], values[i] if allowed[i] else NEG_INF)

    best_prefix_total = [NEG_INF] * (Aay + 2)
    best_prefix_withB = [NEG_INF] * (Aay + 2)

    for i in range(1, Aay + 1):
        best_prefix_total[i] = prefix_sum[i] if prefix_sum[i] > 0 else prefix_max[i]
        if prefix_sum_withB[i] > 0:
            best_prefix_withB[i] = prefix_sum[i]
        elif prefix_sum[i] > 0 and prefix_max_withB[i] > NEG_INF:
            best_prefix_withB[i] = prefix_sum[i] + prefix_max_withB[i]
        elif prefix_max_withB[i] > NEG_INF:
            best_prefix_withB[i] = prefix_max_withB[i]

    suffix_sum = [0] * (Aay + 3)
    suffix_sum_withB = [0] * (Aay + 3)
    suffix_max = [NEG_INF] * (Aay + 3)
    suffix_max_withB = [NEG_INF] * (Aay + 3)

    for i in range(Aay, 0, -1):
        suffix_sum[i] = suffix_sum[i + 1] + max(0, values[i])
        suffix_sum_withB[i] = suffix_sum_withB[i + 1] + (values[i] if values[i] > 0 and allowed[i] else 0)
        suffix_max[i] = max(suffix_max[i + 1], values[i])
        suffix_max_withB[i] = max(suffix_max_withB[i + 1], values[i] if allowed[i] else NEG_INF)

    best_suffix_total = [NEG_INF] * (Aay + 3)
    best_suffix_withB = [NEG_INF] * (Aay + 3)

    for i in range(Aay, 0, -1):
        best_suffix_total[i] = suffix_sum[i] if suffix_sum[i] > 0 else suffix_max[i]
        if suffix_sum_withB[i] > 0:
            best_suffix_withB[i] = suffix_sum[i]
        elif suffix_sum[i] > 0 and suffix_max_withB[i] > NEG_INF:
            best_suffix_withB[i] = suffix_sum[i] + suffix_max_withB[i]
        elif suffix_max_withB[i] > NEG_INF:
            best_suffix_withB[i] = suffix_max_withB[i]

    best_without_B = NEG_INF
    best_possible_with_B = NEG_INF

    for middle in range(2, Aay):
        left = best_prefix_total[middle - 1]
        right = best_suffix_total[middle + 1]
        best_without_B = max(best_without_B, left + right)

        left_B = best_prefix_withB[middle - 1]
        right_B = best_suffix_withB[middle + 1]

        if left_B > NEG_INF:
            best_possible_with_B = max(best_possible_with_B, left_B + right)
        if right_B > NEG_INF:
            best_possible_with_B = max(best_possible_with_B, left + right_B)

    if best_without_B >= required_sum:
        print(0)
    else:
        operations_needed = required_sum - best_possible_with_B
        print(max(0, operations_needed))



Q7 Solving Now(Q7 Solution Will Be Uploaded in 1650 Subscribers Or in 100 likes)











Comments

  1. bro 4th answer is wrong please update

    ReplyDelete
    Replies
    1. def can_reach(N, M, A, B):
      if A == B:
      return N * A == M
      diff = A - B
      numer = M - N * B
      if numer % diff != 0:
      return False
      x = numer // diff
      return 0 <= x <= N

      T = int(input())
      for _ in range(T):
      N, M, A, B = map(int, input().split())
      print("Yes" if can_reach(N, M, A, B) else "No")


      try this

      Delete
  2. Tree Colouring (Hard) pls

    ReplyDelete
  3. costly swapping code needed

    ReplyDelete
  4. 4 is not working bro

    ReplyDelete
  5. itni der lagti mia q7 dene ko?

    ReplyDelete
  6. Anti Subarray pls

    ReplyDelete

Post a Comment

Popular posts from this blog

Get All Coding Solutions

Codeforces Contest Round 1025 (Div.2) | All Questions Solutions – FREE! | 17 May 2025