Cover Image for Maximize the Cost of Repeated Removal of String P or its Reverse from the String S in C++

Maximize the Cost of Repeated Removal of String P or its Reverse from the String S in C++

To maximize the cost of repeated removal of string P or its reverse from the string S in C++, you can use a greedy algorithm. The goal is to find the optimal order and number of removals to maximize the total cost.

Here’s an example C++ code that implements this approach:

#include <iostream>
#include <string>

int maximizeRemovalCost(std::string S, std::string P) {
    int cost = 0;

    while (true) {
        size_t pos = S.find(P);
        size_t posReverse = S.find(std::string(P.rbegin(), P.rend()));

        if (pos == std::string::npos && posReverse == std::string::npos) {
            break; // If both P and its reverse are not found, exit loop

        if (pos != std::string::npos && (posReverse == std::string::npos || pos < posReverse))
            cost += pos + P.length();
            S.erase(pos, P.length());
        } else {
            cost += posReverse + P.length();
            S.erase(posReverse, P.length());

    return cost;

int main() {
    std::string S = "abcpdefgcpq";
    std::string P = "cp";

    int maxCost = maximizeRemovalCost(S, P);

    std::cout << "Maximized cost: " << maxCost << std::endl;

    return 0;

In this example:

  • The function maximizeRemovalCost takes two strings S and P as input.
  • It iterates in a loop until it’s no longer possible to find P or its reverse in S.
  • In each iteration, it checks if P or its reverse occurs first in S. It removes the occurrence that maximizes the cost and updates the total cost.
  • The function returns the maximum cost.

In the main function, an example string S (“abcpdefgcpq”) and string P (“cp”) are provided. The program then calculates and prints the maximum cost.

Please note that this is a simplified example and assumes that you always want to remove either P or its reverse. In a real-world scenario, you might need to consider additional constraints or variations of the problem.


The Tech Thunder

The Tech Thunder

The Tech Thunder