Descripción del problema
en el número de columnas a [1], a [2 ], ..., a [n] , si por los subíndices i, j, k satisface 0 <i <j <k < n + 1 y a [i] <a [j] <a [k] , llamado a [i], a [j ], a [k] se incrementa en un conjunto de triples, un [j] se incrementa triples centro.
Teniendo en cuenta una serie de columnas, número de columna para preguntar cuántos elementos se pueden incrementar triples centro.
Formato de entrada
de la primera línea de la entrada contiene un número entero n.
La segunda línea contiene n enteros a [1], a [2 ], ..., a [n], separadas por un espacio entre número entero adyacente representa un número dado de columnas.
Formato de salida
de línea de salida contiene un entero que representa la respuesta.
entrada de la muestra
. 5
. 1 2. 5. 3. 5
salida de la muestra
2
de ejemplo muestra
un [2] y una [4] puede ser el centro de la tríada.
Ejemplo de acuerdo con la escala de evaluación
para la evaluación por 50% en el Ejemplo, 2 <= n <= 100,0 <= el número de columnas en el <= 1,000.
Para la evaluación todos los casos de uso, 2 <= n <= el número de columnas en 1000,0 << = = 10.000.
package 第十三次模拟;
import java.util.Scanner;
public class Demo5递增三元组 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int [] num = new int [n];
for (int i = 0; i < n; i++) {
num[i]=sc.nextInt();
}
sc.close();
int nums =0;
// int []count = new int [n];
int []b = new int [n];
boolean []bool = new boolean [n];
// int []c = new int [n];
for (int i = 1; i <n; i++) {
for (int j = 0; j <i; j++) {
if(num[i]>num[j]){
b[i]=num[i];
// count[i]++;
}
}
}
for (int i = 2; i <n; i++) {
for (int j = 1; j <i; j++) {
if(!bool[j]&&num[i]>b[j] ){
nums++;
bool[j]=true;
// System.out.print(b[j]+" ");
}
}
}
// System.out.println();
System.out.println(nums);
}
}