Pregunta de Google Kick Round-D (2020)

A Isyana se le da el número de visitantes en su parque temático local en N días consecutivos. El número de visitantes en el i-ésimo día es VI. Un día es récord si cumple las dos condiciones siguientes:

  1. El número de visitantes en el día es estrictamente mayor que el número de visitantes en cada uno de los días anteriores.
  2. O es el último día o el número de visitantes del día es estrictamente mayor que el número de visitantes del día siguiente.

Tenga en cuenta que el primer día podría ser un día récord. Ayude a Isyana a averiguar el número de días récord.

Entrada: La primera línea de la entrada da el número de casos de prueba, T. Siguen los casos de prueba T. Cada caso de prueba comienza con una línea que contiene el número entero N. La segunda línea contiene N números enteros. El i-ésimo entero es Vi.

Salida: para cada caso de prueba, genere una línea que contenga Caso #x: y, donde x es el número de caso de prueba (a partir de 1) e y es la cantidad de días en los que se batieron récords.

Límites

Límite de tiempo: 20 segundos por conjunto de prueba.

Límite de memoria: 1GB.

1 ≤ T ≤ 100.
0 ≤ Vi ≤ 2 × 105.
Test set 1
1 ≤ N ≤ 1000.
Test set 2
1 ≤ N ≤ 2 × 105 for at most 10 test cases.
For the remaining cases, 1 ≤ N ≤ 1000.

Muestra

Input
Output
4
8
1 2 0 7 2 0 2 0
6
4 8 15 16 23 42
9
3 1 4 1 5 9 2 6 5
6
9 9 9 9 9 9
Case #1: 2
Case #2: 1
Case #3: 3
Case #4: 0

En el caso de muestra #1: Los números en negrita y subrayados a continuación representan los días récord: 1 2 0 7 2 0 2 0.

En el caso de muestra #2: solo el último día es un día récord.

En el caso de muestra n.º 3: el primero, el tercero y el sexto días son días récord.

En el caso de muestra n.º 4: no hay un día que rompa récords.

C++

#include<iostream>
using namespace std;
 
int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    int count=0;
    for(int i=1;i<n;i++)
    {
       if(a[i]>a[i-1]&&a[i]>a[i+1])
       {
 
           count++;
       }
    }
    cout<<count<<endl;
    return 0;
}

C#

// C# program for the above approach
using System;
 
public class GFG{
     
    static int calculate(int[] arr, int n)
    {
        int cnt = 0;
       
        // initialising prevmax as -infinity
        int prevmax = Int32.MinValue;
     
        for (int i = 0; i < n; i++)
        {
           
            // check for condition 2
            if (i == n - 1) {
                if (arr[i] > prevmax)
                    cnt++;
            }
           
            // check for condition 1
            else if (arr[i] > prevmax && arr[i] > arr[i + 1]) {
                cnt++;
            }
            // update prevmax
            prevmax = Math.Max(prevmax, arr[i]);
        }
     
        return cnt;
    }
 
    // Driver Code
    static public void Main ()
    {
        int t = 1;
       
        // Taking the input for every test case
        while (t-- != 0)
        {
            int n = 9;
            int[] arr = { 3, 1, 4, 1, 5, 9, 2, 6, 5 };
            Console.Write(calculate(arr, n));
        }
    }
}
 
// This code is contributed by shubhamsingh10

Javascript

<script>
 
// Javascript program for the above approach
function calculate(arr, n)
{
    var cnt = 0;
     
    // Initialising prevmax as -infinity
    var prevmax = Number.MIN_VALUE;
 
    for(var i = 0; i < n; i++)
    {
         
        // Check for condition 2
        if (i == n - 1)
        {
            if (arr[i] > prevmax)
                cnt++;
        }
         
        // Check for condition 1
        else if (arr[i] > prevmax &&
                 arr[i] > arr[i + 1])
        {
            cnt++;
        }
         
        // Update prevmax
        prevmax = Math.max(prevmax, arr[i]);
    }
    return cnt;
}
 
// Driver Code
var t = 1;
 
// Taking the input for every test case
while (t-- != 0)
{
    var n = 9;
    var arr = [ 3, 1, 4, 1, 5, 9, 2, 6, 5 ];
     
    document.write(calculate(arr, n));
}
 
// This code is contributed by shivanisinghss2110
 
</script>
Producción

3

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *