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:
- 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.
- 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>
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