Problema n.o 32: capacitación en TI: problemas y desafíos actuales de compañías líderes

Hola queridos lectores. ¡Una y otra vez lo deleitamos con una nueva selección de preguntas y tareas interesantes, desde entrevistas a empresas de TI líderes!

Por cierto, ¡las respuestas a los problemas del número anterior ya se han publicado !



Los problemas aparecerán cada semana. ¡Estén atentos! La columna está respaldada por la agencia de reclutamiento Spice IT .

Esta semana recopilamos tareas de entrevistas en la compañía india MakeMyTrip.

Preguntas


1. Rompecabezas de 10 monedas
Tienes los ojos vendados y 10 monedas se colocan frente a ti en la mesa. Se le permite tocar las monedas, pero no puede saber qué sentido tienen. Se le dice que hay 5 monedas en la cabeza y 5 monedas en la cola, pero no cuáles son cuáles.

¿Puedes hacer dos pilas de monedas cada una con el mismo número de caras? Puedes voltear las monedas cualquier cantidad de veces.

Transferir
10 . , , . , 5 , («») 5 , («») , — .

, ? .

2. Periódico Puzzle
Un periódico hecho de 16 grandes hojas de papel dobladas por la mitad. El periódico tiene 64 páginas en total. La primera hoja contiene las páginas 1, 2, 63, 64.

Si recogemos una hoja que contiene el número de página 45. ¿Cuáles son las otras páginas que contiene esta hoja?

Transferir
16 , . 64 . 1, 2, 63, 64.


*

, 45. ?

Tareas


1. Transposición de la matriz
Write a program to find transpose of a square matrix mat[][] of size N*N. Transpose of a matrix is obtained by changing rows to columns and columns to rows.

Input:
The first line of input contains an integer T, denoting the number of testcases. Then T test cases follow. Each test case contains an integer N, denoting the size of the square matrix. Then in the next line are N*N space separated values of the matrix.

Output:
For each test case output will be the space separated values of the transpose of the matrix

Constraints:
1 <= T <= 15
1 <= N <= 20
-103 <= mat[i][j] <= 103


Example:
Input:

2
4
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
2
1 2 -9 -2


Output:
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1 -9 2 -2


Explanation:
Caso de prueba 1: La matriz después de la rotación será: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4.

Transferir
, mat[][] N*N. .

:
T, . T . N, . N*N .

:


:
1 < = T <= 15
1 < = N <= 20
-103 < = mat[i] [j] < = 103


:
:

2
4
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
2
1 2 -9 -2


:
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1 -9 2 -2


:
1: : 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4.

2. Ceros al final en factorial
Para un entero n, encuentre el número de ceros finales en n! .

Entrada:
La primera línea contiene un número entero ' T ' que indica el número total de casos de prueba. En cada caso de prueba, contiene un entero ' N '.

Salida:
en cada línea separada, la respuesta al problema.

Restricciones: Ejemplo: Entrada: Salida:
1 <= T <= 100
1 <= N <= 1000




1
9


1
Transferir
n n!.

:
'T', . 'N'.

:
.

:
1 < = T <= 100
1 < = N < = 1000


:
:

1
9

:
1

3. Pasos del caballero
Given a square chessboard of N x N size, the position of Knight and position of a target is given. We need to find out minimum steps a Knight will take to reach the target position.

Input:
The first line of input contains an integer T denoting the number of test cases. Then T test cases follow. Each test case contains an integer n denoting the size of the square chessboard. The next line contains the X-Y coordinates of the knight. The next line contains the X-Y coordinates of the target.

Output:
Print the minimum steps the Knight will take to reach the target position.

Constraints:
1<=T<=100
1<=N<=20
1<=knight_pos,targer_pos<=N


Example:
Input:

2
6
4 5
1 1
20
5 7
15 20


Output:
3
9

N x N . , , .

:
T, . T . n, . X-Y . X-Y .

:
, , .

:
1<=T<=100
1<=N<=20
1<=knight_pos,targer_pos<=N


:
:

2
6
4 5
1 1
20
5 7
15 20


:
3
9


1
: .
:
2 . .

:
— , — .
1:
2:

1.
1:
2:

.

2
45- 46. , P, 65-p .

,
65-45 = 20
65-46 = 19

, — 19, 20, 45, 46.

1
O(1) :
import java.util.*;
import java.lang.*;
import java.io.*;
class GFG
 {
	public static void main (String[] args)
	 {
	 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	 try{
	     int testCases = Integer.parseInt(br.readLine());
	     while(testCases-->0){
	         int size = Integer.parseInt(br.readLine());
	         int[] arr = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
	         int num = 0;
	         int i=0;
	         int total = size*size;
	         
	         while(num<total && i<size){
	             if(num >= size*(size-1)) { 
	                System.out.print(arr[num] + " ");
	                i++;
	                num = i;
	             }
	             else {
	             System.out.print(arr[num] + " ");
	             num+=size;
	             }
	         }
	         System.out.println();
	     }
	 }
	 catch (Exception e){
	     e.printStackTrace();
	 }
	 }
}

2
import math
for _ in range(int(input())):
n=math.factorial(int(input()))
print(len(str(n))-len(str(n).rstrip("0")))

3
#include<bits/stdc++.h>
using namespace std;

void bfs(bool visited[20][20],int n,int x,int y,int X,int Y,int& count){
    queue<pair<int,int>>q;
    visited[x-1][y-1]=true;
    q.push(make_pair(x,y));
    q.push(make_pair(0,0));
    while(q.size()>1){
        x=q.front().first;
        y=q.front().second;
        if(q.front().first==0 && q.front().second==0){
            q.pop();
            count++;
            q.push(make_pair(0,0));
            continue;
        }
        if(q.front().first==X && q.front().second==Y){
            return;
        }
        if(x>2 && y>1 && visited[x-3][y-2]==false){
            visited[x-3][y-2]=true;
            q.push(make_pair(x-2,y-1));
        }
        if(x>2 && y<n && visited[x-3][y]==false){
            visited[x-3][y]=true;
            q.push(make_pair(x-2,y+1));
        }
        if(x>1 && y<n-1 && visited[x-2][y+1]==false){
            visited[x-2][y+1]=true;
            q.push(make_pair(x-1,y+2));
        }
        if(x<n && y<n-1 && visited[x][y+1]==false){
            visited[x][y+1]=true;
            q.push(make_pair(x+1,y+2));
        }
        if(x<n-1 && y<n && visited[x+1][y]==false){
            visited[x+1][y]=true;
            q.push(make_pair(x+2,y+1));
        }
        if(x<n-1 && y>1 && visited[x+1][y-2]==false){
            visited[x+1][y-2]=true;
            q.push(make_pair(x+2,y-1));
        }
        if(x<n && y>2 && visited[x][y-3]==false){
            visited[x][y-3]=true;
            q.push(make_pair(x+1,y-2));
        }
        if(x>1 && y>2 && visited[x-2][y-3]==false){
            visited[x-2][y-3]=true;
            q.push(make_pair(x-1,y-2));
        }
        q.pop();
    }
}
int main()
{
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        int x,y,X,Y;
        cin>>x>>y>>X>>Y;
        int count=0;
        bool visited[20][20]={false};
        bfs(visited,n,x,y,X,Y,count);
        cout<<count<<'\n';
    }
	return 0;
}

All Articles