Program to print maximum number of characters by copy pasting in n steps in Python?

Suppose we have a number n; we have to find the maximum number of characters we can enter using n operations where each operation is like:

  • Inserting the character "x".

  • Copy all characters.

  • Paste

So, if the input is like n = 12, then the output will be 81.

Understanding the Problem

This is a dynamic programming problem where we need to find the optimal strategy to maximize characters. The key insight is that after typing some characters, we should copy-paste to multiply them efficiently. The pattern involves:

  • Type characters individually when n ? 4

  • Use a combination of typing and copy-paste operations for larger n

Algorithm Steps

To solve this, we will follow these steps:

  • If n ? 4, then return n (just type each character)

  • Initialize v = 6, x = 3, i = 5, j = 0

  • While i is not same as n, do:

    • v = v + x (add current clipboard content)

    • i = i + 1, j = j + 1

    • If j is divisible by 3, then x = int(x * 1.5)

    • Else if j % 3 == 1, do nothing

    • Else, x = x * 2

  • Return v

Example

class Solution:
    def solve(self, n):
        if n <= 4:
            return n

        v = 6
        x = 3
        i = 5
        j = 0
        while i != n:
            v += x
            i += 1
            j += 1

            if j % 3 == 0:
                x = int(x * 1.5)
            elif j % 3 == 1:
                pass
            else:
                x *= 2

        return v

ob = Solution()
n = 12
print(ob.solve(n))
81

How It Works

The algorithm uses a pattern where:

  • For n ? 4: Simply type each character (1 operation = 1 character)

  • For n > 4: Start with 3 characters typed and use copy-paste strategy

  • The multiplier x represents how many characters are added in each paste operation

  • The cycle j % 3 determines the operation: copy (j%3==0), nothing (j%3==1), or paste (j%3==2)

Testing with Different Values

class Solution:
    def solve(self, n):
        if n <= 4:
            return n

        v = 6
        x = 3
        i = 5
        j = 0
        while i != n:
            v += x
            i += 1
            j += 1

            if j % 3 == 0:
                x = int(x * 1.5)
            elif j % 3 == 1:
                pass
            else:
                x *= 2

        return v

# Test with different values
ob = Solution()
test_cases = [3, 5, 8, 12, 15]

for n in test_cases:
    result = ob.solve(n)
    print(f"n = {n}: maximum characters = {result}")
n = 3: maximum characters = 3
n = 5: maximum characters = 9
n = 8: maximum characters = 18
n = 12: maximum characters = 81
n = 15: maximum characters = 162

Conclusion

This algorithm efficiently finds the maximum number of characters achievable in n operations by using an optimal copy-paste strategy. For small n (?4), typing individually is best, while for larger n, the copy-paste cycle maximizes output.

Updated on: 2026-03-25T12:13:24+05:30

154 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements