Pikachu vs Team Meowstic and Helping Hand

Pikachu loves battling with other Pokemon. This time he has a team of 

N Meowstic to fight, ith of which has strength ai. He wants to fight with all of them K times. Team Meowstic came to know about this and now they have devised a strategy to battle against the mighty Pikachu.

All the N Meowstic stand in a straight line numbered from 1 to N. Before every round of battle, they simultaneously use a move, called Helping Hand. It changes the attacking power of Team Meowstic as follows:

  • The attacking power of first Meowstic remains a1.
  • The attacking power of the remaining Meowstic changes as ai=ai|ai1 where 2iN and A|B represents the bitwise OR of A and B 

For example, if the current attacking powers are [2,1,4,6,3], after using the Helping Hand, the powers change to [2,1|2,4|1,6|4,3|6], or [2,3,5,6,7].

Help Pikachu by finding the attacking powers of all Meowstic when he fights each of them for the last time, that is, for the Kth round.

Note that, the influence of Helping Hand remains forever, and attacking powers DO NOT revert back after any round.

Example:

Input: n = 5, k = 3, arr = {1, 2, 3, 4, 5}
Output: 1 3 3 7 7

Approach

C++

#include <bits/stdc++.h>
#define mod 1000000007
using namespace std;

int main()
{

    long long n = 5k = 3;
    long long temp = 0temp1;

    vector<long longarr = {12345};

    if (k > 100)
    {
        k = 100;
    }
    while (k--)
    {
        temp = 0;

        for (long long i = 0i < ni++)
        {
            temp1 = arr[i];
            arr[i] = arr[i] | temp;
            temp = temp1;
        }
    }
    for (auto i : arr)
    {
        cout << i << " ";
    }

    return 0;
}


No comments:

Post a Comment