Showing posts with label TCS codevita. Show all posts
Showing posts with label TCS codevita. Show all posts

Jumble With Numbers

Jumble With Numbers

Problem

In NASA, two researchers, Mathew and John, started their work on a new planet, but while practicing research they faced a mathematical difficulty. In order to save the time they divided their work.
So scientist Mathew worked on a piece and invented a number computed with the following formula:
A Mathew number is computed as follows using the formula:
H(n) = n(2n-1)
And scientist John invented another number which is built by the following formula which is called John number.
T(n) = n(n+1)/2
Now Mathew and John are jumbled while combining their work. Now help them combine their research work by finding out number in a given range that satisfies both properties. Using the above formula, the first few Mathew-John numbers are:
1 6 15 28 …

Input Format:

Input consists of 3 integers T1,T2,M separated by space . T1 and T2 are upper and lower limits of the range. The range is inclusive of both T1 and T2. Find Mth number in range [T1,T2] which is actually a Mathew-John number.

Line 1
T1 T2 M,where T1 is upper limit of the range, T2 is lower limit of the range and M ,where Mth element of the series is required

Constraints:

0 < T1 < T2 < 1000000

Output Format:

Print Mth number from formed sequence between T1 and T2(inclusive).

Line 1
For Valid Input,print

Print Mth number from formed sequence between T1 and T2
Or
No number is present at this index

For Invalid Input,print

Invalid Input


Sample Input and Output:


SNo.InputOutput
1               
90 150 2             
120
2
20 80 6
No number is present at this index
3
-5 3 a
Invalid Input

Program:

#include <stdio.h>
int main() {
int t1,t2,m,i,j,c=0,a,b,th[100],k=0;
scanf("%d %d %d",&t1,&t2,&m);
if(t1>0&&t2>0&&m>0)
{
for(i=1;i<=t2/2;i++)
{
    a=i*((2*i)-1);
    for(j=1;j<=t2/2;j++)
    {
        b=j*(j+1)/2;
        if((a==b)&&(a>=t1&&a<=t2))
        th[k++]=a;
    }
}
   if(k<m)
    printf("No number is present at this index");
    else
    printf("%d",th[m-1]);
}
         else
         printf("Invalid Input");
return 0;
}

Output:

90 150 2

120

You can also run this in online IDE: https://ide.geeksforgeeks.org/ZndEODl1gU

Your comments and feedbacks are welcomed! If you have any doubts you can leave it on the comment! Cheers!!

Related Links: Test vita

Bride Hunting -Code Vita 2018 | round 1 | TCS Code Vita Solution 2018 | Bride Hunting TCS Code Vita solution


Bride Hunting

Problem Description

Sam is an eligible bachelor. He decides to settle down in life and start a family. He goes bride hunting.
He wants to marry a girl who has at least one of the 8 qualities mentioned below:-
1) The girl should be rich.
2) The girl should be an Engineer/Doctor.
3) The girl should be beautiful.
4) The girl should be of height 5.3".
5) The girl should be working in an MNC.
6) The girl should be an extrovert.
7) The girl should not have spectacles.
8) The girl should be kind and honest.
He is in search of a bride who has some or all of the 8 qualities mentioned above. On bride hunting, he may find more than one contenders to be his wife.
In that case, he wants to choose a girl whose house is closest to his house. Find a bride for Sam who has maximum qualities. If in case, there are more than one contenders who are at equal distance from Sam’'s house; then
print "“Polygamy not allowed”".
In case there is no suitable girl who fits the criteria then print “"No suitable girl found"”
Given a Matrix N*M, Sam's house is at (1, 1). It is denoted by 1. In the same matrix, the location of a marriageable Girl is also denoted by 1. Hence 1 at location (1, 1) should not be considered as the location of a marriageable Girl’s location.
The qualities of that girl, as per Sam’'s criteria, have to be decoded from the number of non-zero neighbors (max 8-way) she has. Similar to the condition above, 1 at location (1, 1) should not be considered as the quality of a Girl. See Example section to get a better understanding.
Find Sam, a suitable Bride and print the row and column of the bride, and find out the number of qualities that the Bride possesses.
NOTE: - Distance is calculated in number of hops in any direction i.e. (Left, Right, Up, Down and Diagonal)
Constraints
2 <= N,M <= 10^2
Input Format
First Line contains the row (N) and column (M) of the houses.
Next N lines contain the data about girls and their qualities.
Output
It will contain the row and column of the bride, and the number of qualities that Bride possess separated by a colon (i.e. :).
Explanation
Example 1
Input:
2 9
1 0 1 1 0 1 1 1 1
0 0 0 1 0 1 0 0 1
Output:
1:7:3
Explanation:
The girl and qualities are present at (1,3),(1,4),(1,6),(1,7),(1,8),(1,9),(2,4),(2,6),(2,9).
The girl present at (1,3) has 2 qualities (i.e. (1,4)and (2,4)).
The girl present at (1,4) has 2 qualities.
The Bride present at (1,6) has 2 qualities.
The Bride present at (1,7) has 3 qualities.
The Bride present at (1,8) has 3 qualities.
The Bride present at (1,9) has 2 qualities.
The Bride present at (2,4) has 2 qualities.
The Bride present at (2,6) has 2 qualities.
The Bride present at (2,9) has 2 qualities.
As we see, there are two contenders who have maximum qualities, one is at (1,7) and another at (1,8).
The girl who is closest to Sam's house is at (1,7). Hence, she is the bride.
Hence, the output will be 1:7:3.
Example 2
Input:
6 6
1 0 0 0 0 0
0 0 0 0 0 0
0 0 1 1 1 0
0 0 1 1 1 0
0 0 1 1 1 0
0 0 0 0 0 0
Output:
4:4:8
Explanation:
The bride and qualities are present at (3,3),(3,4),(3,5),(4,3),(4,4),(4,5),(5,3),(5,4),(5,5)
The Bride present at (3,3) has 3 qualities (i.e. (3,4),(4,3) and (4,4)).
The Bride present at (3,4) has 5 qualities.
The Bride present at (3,5) has 3 qualities.
The Bride present at (4,3) has 5 qualities.
The Bride present at (4,4) has 8 qualities.
The Bride present at (4,5) has 5 qualities.
The Bride present at (5,3) has 3 qualities.
The Bride present at (5,4) has 5 qualities.
The Bride present at (5,5) has 3 qualities.
As we see, the girl present in (4,4) has maximum number of Qualities. Hence, she is the bride.
Hence, the output will be 4:4:8.

Solution in C:
 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

// Function to check if given indices are valid in the matrix
int isValid(int row, int col, int N, int M) {
return (row >= 0 && row < N && col >= 0 && col < M);
}

// Function to count the number of qualities a girl possesses
int countQualities(int matrix[][100], int row, int col, int N, int M) {
int count = 0;
for (int i = row - 1; i <= row + 1; i++) {
for (int j = col - 1; j <= col + 1; j++) {
if (isValid(i, j, N, M) && !(i == row && j == col) && matrix[i][j] == 1) {
count++;
}
}
}
return count;
}

// Function to find the suitable bride for Sam
void findBride(int matrix[][100], int N, int M) {
int minDistance = N + M; // Initialize to maximum possible distance
int maxQualities = 0;
int brideRow = -1, brideCol = -1;

// Loop through the matrix to find the bride with maximum qualities
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
if (matrix[i][j] == 1) {
int qualities = countQualities(matrix, i, j, N, M);
if (qualities > maxQualities) {
maxQualities = qualities;
brideRow = i;
brideCol = j;
} else if (qualities == maxQualities) {
// If multiple brides have the same number of qualities,
// find the one with minimum distance to Sam's house
int distance = abs(0 - i) + abs(0 - j);
if (distance < minDistance) {
minDistance = distance;
brideRow = i;
brideCol = j;
} else if (distance == minDistance) {
printf("Polygamy not allowed\n");
return;
}
}
}
}
}

// If no suitable bride found
if (brideRow == -1 || brideCol == -1) {
printf("No suitable girl found\n");
} else {
printf("%d:%d:%d\n", brideRow + 1, brideCol + 1, maxQualities);
}
}

int main() {
int N, M;
scanf("%d %d", &N, &M);

int matrix[100][100];
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
scanf("%d", &matrix[i][j]);
}
}

findBride(matrix, N, M);

return 0;
}


Alternate Solution (Brute Force):

#include<stdio.h>

int main()

{

int n,m,i,g[50][50],j,p,q,max=0,cnt=0,k=1,c=0,u=1,x[30],y[30],t1,min=0, sc[50],e,f,ct=0,a[50],count=0,t2=0,t=0;

scanf("%d %d",&n,&m);

for(i=1;i<=n;i++)

{

for(j=1;j<=m;j++)

{

scanf("%d",&g[i][j]);

} }

g[1][1]=0;

for(i=1;i<=n;i++)

{

for(j=1;j<=m;j++)

{ cnt=0;

if(g[i][j]==1)

{

t++;

for(p=i-1;p<=i+1;p++)

{

for(q=j-1;q<=j+1;q++)

{

if(g[p][q]==1)

{ cnt++;

} } }

cnt=cnt-1;

a[k]=cnt;

k++;

} } }

for(k=1;k<=t;k++)

{ if(a[k]>max) max=a[k];

}

if(max==0)

{ printf("No suitable girl found"); goto x; }

for(k=1;k<=t;k++)

{ if(a[k]==max)

c++; }

for(k=1;k<=t;k++)

{ t2=0;

if(a[k]==max)

{ for(i=1;i<=n;i++)

{ for(j=1;j<=m;j++)

{ if(g[i][j]==1) t2++;

if(t2==k)

{ x[u]=i; y[u]=j; u++;

} } } } }

t1=u-1;

if(c==1)

printf("%d:%d:%d",x[1],y[1],max);

else

{ for(u=1;u<=t1;u++)

{ e=x[u]-1;

f=y[u]-1;

if(e>=f)

{ sc[u]=e;

}

else sc[u]=f;

}

min=sc[1];

for(u=1;u<=t1;u++)

{ if(sc[u]<min) min=sc[u];

}

for(u=1;u<=t1;u++)

{ if(sc[u]==min) count++;

}

if(count>1)

printf("Polygamy not allowed");

if(count==1)

{ for(u=1;u<=t1;u++)

{ if(sc[u]==min)

printf("%d:%d:%d",x[u],y[u],max);

} } }

x: return 0;

}






OUTPUT:
6 6
1 0 0 0 0 0
0 0 0 0 0 0
0 0 1 1 1 0
0 0 1 1 1 0
0 0 1 1 1 0
0 0 0 0 0 0

4:4:8

Hey guys you can run this program in the online ide in this link: 


Your feedback are welcomed and can comment or post your doubts in the comment Cheers!

Related Links: 

Zombie World


Zombie World

Zoya has developed a new game called Zombie World. The objective of the game is to kill all zombies in given amount of time. More formally,
-         N represents the total number of zombies in the current level
-         T represents the maximum time allowed for the current level
-         P represents the initial energy level a player starts with
-         Ei defines the energy of the i-th zombie
-         D defines the minimum energy the player needs, to advance to the next level
When a player energy is greater than or equal to the i-th zombie's energy, the player wins. Upon winning, the player will be awarded with an additional energy equal to the difference between current zombie energy and the player energy.
One unit of time will be taken to complete the fight with a single zombie.
Rules of the game:-
-         At any given time, a player can fight with only one zombie
-         Player is allowed to choose any one zombie to fight with.
Your task is to determine whether the player will advance to the next level or not, if he plays optimally.

Input Format:
The first line contains the number of test cases (K)

Each test case consists of three parts:

1. The total number of zombies (N) and the maximum time allowed (T)
2. Array of size N, which represents the energy of zombies (E)
3. The initial energy level a player (P) and the minimum energy required to advance (D)

Output Format:

Print "Yes" if a player can advance to the next level else print "No".
Constraints:

1<=K<=10
1<=N<=50
1<=Ei<=500
1<=T<=100
1<=D<=2000
1<=P<=500

Sample Input and Output


SNo.InputOutput
1
1
2 3
4 5
5 7

Yes

PROGRAM:
#include<stdio.h>
int main()
{
 int n,t,e[20],i,pe,me,k;
 scanf("%d",&k);
 while(k)
 {
 scanf("%d",&n);
 scanf("%d",&t);
 for(i=0;i<n;i++)
 scanf("%d",&e[i]);
 scanf("%d",&pe);
 scanf("%d",&me);
 if(t<n)
 goto x;
 else
 {
  for(i=0;i<n;i++)
  {
   if(pe>=e[i])
   {
    pe=pe+(pe-e[i]);
   }
  }
 if(pe<=me)
 printf("yes\n");
 else
x: printf("no\n");
 }
 
    k--;
 }
 return 0;
}
OUTPUT: 
1
2 3
4 5
5 7
Yes

You can directly run it on a IDE: https://ide.geeksforgeeks.org/3un9lTbXuV

You can comment your feedback and doubts if any cheers!

Related Link:Bride Hunting


Minimum Product Array



         Minimum Product Array
TCS codevita 2016 round 1:         The task is to find the minimum sum of Products of two arrays of the same size, given that k modifications are allowed on the first array. In each modification, one array element of the first array can either be increased or decreased by 2.Note- the product sum is Summation (A[i]*B[i]) for all i from 1 to n where n is the size of both arrays.
Input Format:          First line of the input contains n and k delimited by white space Second line contains the Array A (modifiable array) with its values delimited by spaces Third line contains the Array B (non-modifiable array) with its values delimited by spaces.
Output Format:
Output the minimum sum of products of the two arrays.
Constraints:
1 ≤ N ≤ 10^50 ≤ |A[i]|, |B[i]| ≤ 10^50 ≤ K ≤ 10^9
Sample       Input                   Output
1.                3 5                            -31
                   1 2 -3
                  -2 3 -5
2.               5 3                              25
                  2 3 4 5 4
                  3 4 2 3 2
Explanation for sample 1:
  Here total numbers are 3 and total modifications allowed are 5. So we modified A[2], which is -3 and increased it by 10 (as 5 modifications are allowed). Now final sum will be (1 * -2) + (2 * 3) + (7 * -5) -2 + 6 - 35 -31
-31 is our final answer.
Explanation for sample 2:
  Here total numbers are 5 and total modifications allowed are 3. So we modified A[1], which is 3 and decreased it by 6 (as 3 modifications are allowed). Now final sum will be (2 * 3) + (-3 * 4) + (4 * 2) + (5 * 3) + (4 * 2) 6 - 12 + 8 + 15 + 8 25
25 is our final answer. 
PROGRAM:
#include<stdio.h>
int main()
{
 int m[10],i,min,max,k,n,p=1,sum=0,u[10],mins;
 scanf("%d",&n);
 scanf("%d",&k);
 for(i=0;i<n;i++)
 scanf("%d",&u[i]);
 for(i=0;i<n;i++)
 scanf("%d",&m[i]);
 min=m[0];
 max=m[0];
 for(i=0;i<n;i++)
 {
  if(m[i]<min)
  min=m[i];
  if(m[i]>max)
  max=m[i];
 }
 if (min<0&&max<0)
 mins=min<max?min:max;
 else if(min>0&&max>0)
 mins=max>min?max:min;
 else
 {
 if((min-max)<-(2*min))
  mins=min;
  else 
  mins=max;
 }
 for(i=0;i<n;i++)
 {
  if(mins==m[i]&&mins>0)
   {
u[i]=u[i]-(2*k);
   goto x;
   }
   if(mins==m[i]&&mins<0)
    { 
    u[i]=u[i]+(2*k);
    goto x;
    }
  }
x:for(i=0;i<n;i++)
 {
 p=u[i]*m[i];
 sum=sum+p;
 }
 printf("%d",sum);
 return 0;
 
}


OUTPUT:
5 3                              
2 3 4 5 4
3 4 2 3 2

25
You can directly run it on a IDE: https://ide.geeksforgeeks.org/lP9ISaZ9yx
You can comment your feedback and doubts if any cheers!
Related links: Zombie World

Super Market Problem | TCS Code Vita 2023 - Zone 1 | Super Market TCS Code Vita 2023 Solution | Code Vita 2023 | Code Vita 2023 season 11 solution

 Problem Description: In a Super market we will find many variations of the same product. In the same way we can find many types of rice bag...