Problema n. ° 30: Capacitación en TI: problemas y desafíos actuales de compañías líderes

¡Hola! ¡Aquí estamos! ¡Hoy tenemos un artículo de jubileo en el número 30!

¡Nuevamente preparamos para usted una selección de preguntas y tareas interesantes de entrevistas en compañías de TI líderes! 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 empresa estadounidense Visa.

Preguntas


1. 100 prisioneros con sombreros rojos / negros
100 prisioneros en la cárcel están parados en una fila mirando en una dirección. Cada prisionero lleva un sombrero de color negro o rojo. Un preso puede ver sombreros de todos los prisioneros frente a él en la cola, pero no puede ver su sombrero y sombreros de prisioneros de pie detrás de él.
El carcelero va a preguntar el color del sombrero de cada prisionero a partir del último prisionero en la cola. Si un prisionero le dice el color correcto, entonces se guarda, de lo contrario se ejecuta. ¿Cuántos prisioneros se pueden salvar a lo sumo si se les permite discutir una estrategia antes de que el carcelero comience a preguntar los colores de sus sombreros?

Transferir
100 . . , , .
, . , , , . , , .
.

2. Proporción de niños y niñas en un país donde la gente solo quiere niños
En un país, todas las familias quieren un niño. Siguen teniendo bebés hasta que nace un niño. ¿Cuál es la proporción esperada de niños y niñas en el país?

Transferir
. . ?

Tareas


1. El problema del catering perezoso
Dado un número entero N , que denota el número de cortes que se pueden hacer en un panqueque, encuentre el número máximo de piezas que se pueden formar haciendo N cortes.

Entrada:
La primera línea de entrada contiene un único número entero T que indica el número de casos de prueba. Luego siguen los casos de prueba T. Cada caso de prueba consta de una línea. La primera línea de cada caso de prueba consiste en un número entero N.

Salida:
correspondiente a cada caso de prueba, en una nueva línea, imprima el número máximo de piezas que se pueden formar haciendo N cortes.

Restricciones: Ejemplo: Entrada Salida

1 ≤ T ≤ 100
1 ≤ N ≤ 106




2
5
3


16
7

Transferir
N, , . , , N .

:
T, . T. . N.

:
, , N .

:

1 ≤ T ≤ 100
1 ≤ N ≤ 106


:

2
5
3


16
7

2. Elemento pico
Given an array A of N integers. The task is to find a peak element in it.
An array element is peak if it is not smaller than its neighbours. For corner elements, we need to consider only one neighbour.

Note: There may be multiple peak element possible, in that case you may return any valid index.

Input Format:
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. Then in the next line are N space separated values of the array.

Output Format:
For each test case output will be 1 if the index returned by the function is an index with peak element.

User Task:
No tiene que tomar ninguna entrada. Simplemente complete la función proporcionada peakElement () y devuelva el índice válido.

Restricciones: Ejemplo: Entrada: Salida: Explicación: Caso de prueba 1: En la matriz dada, 3 es el elemento pico. El caso de prueba 2: 4 es el elemento pico.
1 <= T <= 100
1 <= N <= 100
1 <= A[] <= 1000




2
3
1 2 3
2
3 4


3
4





Transferir
A N . , .
, . .

. , .

:
T, . T. N. N .

:
1 <= T <= 100
1 <= N <= 100
1 <= A [] <= 1000


:
:

2
3
1 2 3
2
3 4

:
3
4


:
1:
3 .
2: 4 .

3. Superposición de intervalos máximos
Consider a big party where a log register for guest’s entry and exit times is maintained. Find the time at which there are maximum guests in the party. Note that entries in register are not in any order.

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 entry and exit array. Then the next two line contains the entry and exit array respectively.

Output:
Print the maximum no of guests and the time at which there are maximum guests in the party.

Constraints:
1<=T<=10^5
1<=N<=10^5
1<=entry[i],exit[i]<=10^5


Example:
Input:

2
5
1 2 10 5 5
4 5 12 9 12
7
13 28 29 14 40 17 3
107 95 111 105 70 127 74


Output:
3 5
7 40

, . , . , .

:
T, . T. n, . .

:
, .

:
1 <= <= 10 ^ 5
1 <= N <= 10 ^ 5
1 <= [I], [I] <= 10 ^ 5


:
:

2
5
1 2 10 5 5
4 5 12 9 12
7
13 28 29 14 40 17 3
107 95 111 105 70 127 74


:
3 5
7 40



1
99 , 100- 50-50 .
, .

100- , . , , 99- .

99- 100- . 100-. 99- .

100- «» ( )
) 99- , .
) 99- , — .

100- «» ( )
) 99- , — .
) 99- , — .

98- 99- .

97 1 .

2
: . , , , .

.
NG .

, (1-p) , .

NG .

NG = 0*(1-p) + 1*p*(1-p) + 2*p*p*(1-p) + 3*p*p*p*(1-p) + 4*p*p*p*p*(1-p) +.....

p = 1/2 (1-p) = 1/2 .

NG = 0*(1/2) + 1*(1/2)2 + 2*(1/2)3 + 3*(1/2)4 + 4*(1/2)5 + ...
1/2*NG = 0*(1/2)2 + 1*(1/2)3 + 2*(1/2)4 + 3*(1/2)5 + 4*(1/2)6 + ...


NG - NG/2 = 1*(1/2)2 + 1*(1/2)3 + 1*(1/2)4 + 1*(1/2)5 + 1*(1/2)6 + ...

1
NG/2 = (1/4)/(1-1/2) = 1/2

NG = 1

1
, : (n + c*c + 2) / 2
int main() {
	int t,n,final;
	cin>>t;
	while(t--){
	   cin>>n;
	   final=(n+(n*n)+2)/2;
	   cout<<final<<endl;
	}
	return 0;
}

2
// arr: input array
// n: size of array
int peakElement(int a[], int n)
{
    int i;
    for(i=1;i<n-1;i++){
        if(a[i]>a[i-1] && a[i]>a[i+1]){
            return i;
        }
    }
    if(n>1 && a[0]>a[1])
        return a[0];
    if(n-2>=0 && a[n-1]>a[n-2])
    return a[n-1];
}

3
/*package whatever //do not write package name here */

import java.util.*;
import java.lang.*;
import java.io.*;

class GFG {
	public static void main (String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		
		while (T > 0) {
		    int N = sc.nextInt();
		    int[] entry = new int[N];
		    int[] exit = new int[N];
		    for (int i = 0; i < N; i++) {
		        entry[i] = sc.nextInt();
		    }
		    
		    for (int i = 0; i < N; i++) {
		        exit[i] = sc.nextInt();
		    }
		    
		    Arrays.sort(entry);
		    Arrays.sort(exit);
		    //System.out.println(Arrays.toString(entry));
		    //System.out.println(Arrays.toString(exit));
		    
		    int counter = 0;
		    int maxCounter = -1;
		    int maxTime = -1;
		    
		    int entryIdx = 0;
		    int exitIdx = 0;
		    
		    while (entryIdx < N && exitIdx < N) {
		        if (entry[entryIdx] <= exit[exitIdx]) {
		            counter++;
		            if (counter > maxCounter) {
		                maxCounter = counter;
		                maxTime = entry[entryIdx];
		            }
		            entryIdx++;
		        } else {
		            counter--;
		            exitIdx++;
		        }
		    }
		    
		    System.out.println(maxCounter + " " + maxTime);   
		    T--;
		}
	}
}

Source: https://habr.com/ru/post/undefined/


All Articles