Infosys Problem
Infosys Problem
Problem Statement :
You have been given a string S of length N. The given string is a binary string which consists of only 0’s and ‘1’s. Ugliness of a string is
defined as the decimal number that this binary string represents.
Example:
“101” represents 5.
“0000” represents 0.
There are two types of operations that can be performed on the given string.
Initially, you have been given coins equal to the value defined in CASH. Your task is to minimize the ugliness of the string by performing
the above mentioned operations on it. Since the answer can be very large, return the answer modulo 10^9+7.
Note:
You can perform an operation only if you have enough number of coins to perform it.
After every operation the number of coins get deducted by the cost for that operation.
Input Format
The first line contains an integer, N, denoting the number of character in the string
The next line contains a string, S, denoting the the binary string
The next line contains an integer, CASH, denoting the total number of coins present initially
Next will contains an integer, A, denoting the cost to swap two characters.
Then the next line contains an integer, B, denoting the cost to flip a character.
Constraints
1<=CASH <=10^5
1<=A<=10^5
1<=B<=10^5
Sample Input 1 :
4
1111
7
1
2
Sample Output 1 :
Explanation:
3 flips can be used to create “0001” which represents 1.
Sample Input 2:
6
111011
7
1
3
Sample Output 2:
Explanation:
First swap 0 with the most significant 1, then use flip twice first on index one and then on index two
“111011”=>”0111111″=>”001111″=>”000111″ the value represented is 7.
Sample Input 3:
6
111011
7
3
2
Sample Output 3:
Explanation:
Flip the 3 most significant characters to get “000011” : the value represented by this string is 3.N
2.Problem Statement :
Khaled has an array A of N elements. It is guaranteed that N is even. He wants to choose at most N/2 elements from array A. It is not
necessary to choose consecutive elements. Khaled is interested in XOR of all the elements he chooses. Here, XOR denotes the bitwise XOR
operation.
For example:
If A=[2,4,6,8], then khaled can choose the subset [2,4,8] to achieve XOR=(2 XOR 4 XOR 8)=14.
Khaled wants to maximize the XOR of all the elements he chooses. Your task is to help khaled to find the max XOR of a subset that he can
achieve by choosing at most N/2 elements?
Input format:
Each line i of the N subsequent lines(where 0<=i<=N) contains an integer describing Ai.
Constraints
1<=N<=120
1<=A[i]<=10^6
Wael is well-known for how much he loves the bitwise XOR operation, while kaito is well known for how much he loves to sum numbers, so
their friend Resli decided to make up a problem that would enjoy both of them. Resil wrote down an array A of length N, an integer K and
he defined a new function called Xor- sum as follows
Input format
Each line i of the N subsequent lines(where 0<=i<=N) contains an integer describing Ai.
Constraints
1<=N<=10^5
0<=K<=10^9
0<=A[i]<=10^9
Sample Input 1
1
0
989898
Sample Output 1
989898
Explanation:
Xor_sum(0)=(0^989898)=989898
Sample Input 2
3
7
1
6
3
Sample Output 2
14
Explanation
Xor_sum(4)=(4^1)+(4^6)+(4^3)=14.
3.One of the first lessons IT students learn is the representation of natural numbers in the binary
number system (base 2) This system uses only two digits, 0 and 1. In everyday life we use for
convenience the decimal system (base 10) which uses ten digits, from 0 to 9. In general, we
could use any numbering system.
Computer scientists often use systems based on 8 or 16. The numbering system based on K uses
K digits with a value from 0 to K-1. Suppose a natural number M is given, written in the decimal
system To convert it to the corresponding writing in the system based on K, we successively
divide M by K until we reach a quotient that is less than K
The representation of M in the system based on K is formed by the final quotient (as first digit)
and is followed by the remainder of the previous divisionsFor example :
If M=122 and K=8, 122 in base 10= 172 in base 8 This means that the number
You made the following observation in applying the above rule of converting natural numbers to
another numbering system
In some cases in the new representation all the digits of the number are the same. For
example 63 in base 10= 333 in base 4
Given a number M in its decimal representation, your task is find the minimum base B such that
in the representation of M at base B all digits are the same.
Input Format
Constraints
1 <= M = 10^12
Sample Input 1 :
41
Sample Output 1 :
40
Explanation :
Here 41 in base 40. will be 11 so it has all digits the same, and there is no smaller base satisfying
the requirements
Sample Input 2 :
34430
Sample Output 2 :
312
Explanation :
Here 34430 in base 312 will have all digits the same and there is no smaller base satisfying the
requirement
4.
5.Problem Statement:
You are given an array of size N. You need to change this array into a mountain. By mountain we
mean, the either ends of the array should have equal elements. Then as we move towards the
middle from both ends, the next element is just one more than the previous one. So, it would
have a peak in the middle and decrease if you go towards either end, just like a mountain.
Examples of mountains are [1, 2, 3, 2, 1] or [6, 7, 8, 8, 7, 6]. But the array [1, 2, 4, 2, 1] is not a
mountain because from 2 to 4 the difference is 2. The array [1, 2, 3, 1] is also not a mountain
because the elements 2 and 3 are not equal from both ends.
You need to find the minimum number of elements that should be changed to make the array a
mountain. You can make the elements negative or zero as well.
Parameters:
N :: INTEGER
The first line contains an integer, N, denoting the number of elements in array. N :: 1 -> 10^5
Test Cases
Case#: 1
Input:
5
1
2
3
4
5
Output:
2
array = [1, 2, 3, 4, 5]. We can change 4 and 5 to make it [1, 2, 3, 2, 1]
Case#: 2
Input:
9
1
1
1
2
3
2
1
1
1
Output:
4
array = [1, 1, 1, 2, 3, 2, 1, 1, 1]. We can change the array to [-1, 0, 1, 2, 3, 2, 1, 0, -1]
Case#: 3
Input:
6
3
3
4
4
5
5
Output:
3
array = [3, 3, 4, 4, 5, 5]. We can change the array to [2, 3, 4, 4, 3, 2]
6.You need to build a road in a rugged terrain. You know the sea level of each segment of the
rugged terrain, i.e., the i-th segment is Li meters from sea level.
You need to transform the terrain into a strictly downward sloping terrain for the road, i.e., for
each i-th segment where 2 <= i <= N, resultant Li-1 > Li. To do so, you employ a powerful
digging team to help you dig and reduce the sea level of the segments. On day D, the team can
reduce the sea level for each segment that you scheduled that day by 2D-1 meters each.
You are allowed to assign the team to dig on multiple segments and/or dig on the same
segments for multiple days.
Your task is to find the minimum number of days needed to transform the terrain as per your
requirements.
Parameters:
N :: INTEGER
The first line contains an integer, N, denoting the number of elements in L. N :: 1 -> 10^5
L :: INTEGER ARRAY
Each line i of the N subsequent lines (where 0 < i ≤ N) contains an integer describing Li, the sea
level of the i-th segment. L[i] :: -10^9 -> 10^9
Test Cases
Case#: 1
Input:
2
3
3
Output:
1
We can dig on the 2nd segment, reducing it from 3-meter sea level to 2. Resulting in {3, 2}
which is strictly decreasing.
Case#: 2
Input:
2
5
-3
Output:
0
It is already strictly decreasing before start.
Case#: 3
Input:
4
-1
1
1
1
Output: 3
One of the possible ways:
On day 1, we can dig on 1st and 4th segment, resulting in {-2, 1, 1, 0}
On day 2, we can dig on 3rd and 4th segments, resulting in {-2, 1, -1, -2}
On day 3, we can dig on 2nd, 3rd, and 4th segments, resulting in {-2, -3, -5, -6}
7.Problem Statement:
There is a battle between heroes and villains going on. You have M heroes, all of them have the
same health H. There are N villains, health of the i-th villain is Vi.
When a hero, with health H battles a villain with health Vi, one of the three scenarios can
happen:
If H > Vi: The villain is defeated, and the health of the hero is decreased by Vi if H < Vi: The
villain wins, his health is not affected, and the hero is no longer able to fight. if H = Vi: Both are
considered defeated, and neither can fight.
The heroes start fighting villains one by one in the same order, first villain 1 then villain 2 and so
on. It might be possible that before defeating all the villains, all the heroes are defeated.
Therefore, to ensure the victory of the heroes, you want to remove some villains from the front.
Your task is to find the minimum number of villains you need to remove from the front such that
the victory of the heroes is guaranteed.
Note: If in the last battle, both the hero and villain are defeated and no more heroes or villains
remain, it would still be considered a victory since all the villains are defeated.
Parameters:
N :: INTEGER
The first line contains an integer, N, denoting the number of villains N :: 1 -> 2*10^5
M :: INTEGER
The next line contains an integer, M, denoting the number of heroes M :: 1 -> 2*10^5
H :: INTEGER
The next line contains an integer, H, denoting the health of each of the heroes H :: 1 -> 10^9
Test Cases
Case#: 1
Input:
4
4
3
3
1
3
3
Output:
0
[3, 1, 3, 3]. We have 4 heroes will health 3. The heroes 1 will fight villain 1. Both get defeated.
The hero 2 fights villain 2. It wins the battle and now his health is 2. He fights the third villain and
loses, the villain still has health 3. The hero 3 fights villain 3 and both get defeated. Hero 4 fights
villain 4 and both get defeated. So, no need to remove any villain.
Case#: 2
Input:
5
3
3
1
2
3
1
1
Output:
0
The fight will take place and hero 1 will defeat villain 1 and 2. Hero 2 will defeat villain 2. Hero 3
will defeat villain 3 and 4
Case#: 3
Input:
5
1
4
1
2
3
1
3
Output:
3
8.Only 1 hero is present with health 4. Since you can only remove villain from the front, you will
have to remove the first 3 villains to ensure victory. The hero can fight the last 2 villain of health
1 and 3 respectively and win the battle.
Today you decided to go to the gym. You currently have energy equal to E units. There are N
exercises in the gym. Each of these exercises drains Ai amount of energy from your body.
You feel tired if your energy reaches 0 or below. Calculate the minimum number of exercises you
have to perform such that you become tired. Every unique exercise can only be performed at
most 2 times as others also have to use the machines.
If performing all the exercises does not make you feel tired, return -1.
Parameters:
E :: INTEGER
The first line contains an integer, E, denoting the Energy.
E :: 1 -> 10^5
N :: INTEGER
The next line contains an integer, N, denoting the number of exercises. N :: 1 -> 10^5
A :: INTEGER ARRAY
Each line i of the N subsequent lines (where 0 ≤ i < N) contains an integer describing the amount
of energy drained by i-th exercise.
A[i] :: 1 -> 10^5
Test Cases
Case#: 1
Input:
6
2
1
2
Output:
4
E=6
Do 1st exercise 2 times
Do 2nd exercise 2 times
Hence, total exercises done 4.
Case#: 2
Input:
10
2
1
2
Output:
-1
E = 10
By doing both the exercises 2 times, you won’t feel tired.
Case#: 3
Input:
2
3
1
5
2
Output:
1
E=2
Use 3rd exercise 1 time.
Hence, total exercise done 1.
Course Completion
9.Problem Statement :
Your task is to find out the maximum days of vacation Andy can take by canceling at most K of
his obligations.
Input Format
The first line contains an integer N, denoting the total number of days
The next line contains an integer M denoting the total number of obligations.
The next line contains an integer K denoting the largest number of obligations he could
cancel
Each line i of the M subsequent lines (where 0<=i<=M) contains an integer describing
Di.
Constraints
1<=N<=10^6
1<=M<=2*10^6
1<=K<=2*10^6
1<=D[i]<=10^6
Sample Input 1:
10
5
2
6
9
3
2
7
Sample Output 1 :
Explanation:
Here he could cancel his 3rd and 4th obligation which makes vacation length 5.
Sample input 2:
7
2
0
3
4
Sample Output 2:
Explanation:
Here he could not cancel any obligation since K=0, so the vacation length is 3.
10. While playing an RPG game, you were assigned to complete one of the hardest quests in this
game. There are n monsters you’ll need to defeat in this quest. Each monster i is described with two
integer numbers – poweri and bonusi. To defeat this monster, you’ll need at least poweri experience
points. If you try fighting this monster without having enough experience points, you lose
immediately. You will also gain bonusi experience points if you defeat this monster. You can defeat
monsters in any order.
The quest turned out to be very hard – you try to defeat the monsters but keep losing repeatedly.
Your friend told you that this quest is impossible to complete. Knowing that, you’re interested, what
is the maximum possible number of monsters you can defeat?
(Question difficulty level: Hardest)
Input:
The first line contains an integer, n, denoting the number of monsters. The next line contains
an integer, e, denoting your initial experience.
Each line i of the n subsequent lines (where 0 ≤ i < n) contains an integer, poweri, which
represents power of the corresponding monster.
Defeat the first monster having power of 101 and bonus of 100.
Experience level is now 101+100=201.
Each line i of the n subsequent lines (where 0 ≤ i < n) contains an integer, bonusi, which
represents bonus for defeating the corresponding monster.
11.
Problem Statement:
Your birthday is coming soon and one of your friends, Alex, is thinking about a gift for you. He knows
that you really like integer arrays with interesting properties.
He selected two numbers, N and K and decided to write down on paper all integer arrays of
length K (in form a[1], a[2], …, a[K]), where every number a[i] is in range from 1 to N, and,
moreover, a[i+1] is divisible by a[i] (where 1 < i <= K), and give you this paper as a birthday present.
Alex is very patient, so he managed to do this. Now you’re wondering, how many different arrays are
written down on this paper?
Input:
The first line contains an integer, n, denoting the maximum possible value in the arrays.
The next line contains an integer, k, denoting the length of the arrays.
Input Output Output Description
21 2 The required length is 1, so there are only two possible arrays: [1] and [2].
22 3 All possible arrays are [1, 1], [1, 2], [2, 2]. [2, 1] is invalid because 1 is not divisible by 2.
32 5 All possible arrays are [1, 1], [1, 2], [1, 3], [2, 2], [3, 3].
12. You have an array A of N integers A1 A2 .. An. Find the longest increasing subsequence Ai1 Ai2 ..
Ak
(1 <= k <= N) that satisfies the following condition:
For every adjacent pair of numbers of the chosen subsequence Ai[x] and Ai[x+1] (1 < x < k), the
expression( Ai[x] & Ai[x+1] ) * 2 < ( Ai[x] | Ai[x+1] ) is true
Input:
2. Each line i of the N subsequent lines (where 0 ≤ i < N) contains an integer describing Ai.