Se le da un número entero positivo n n, se garantiza que n n es par (es decir, divisible por 2 2).
Desea construir la matriz a a de longitud n n tal que:
- Los primeros n 2 n2 elementos de a a son pares (divisible por 2 2);
- los segundos n 2 n2 elementos de a a son impares (no divisibles por 2 2);
- todos los elementos de a a son distintos y positivos;
- la suma de la primera mitad es igual a la suma de la segunda mitad ( ∑ i = 1 n 2 a i = ∑ i = n 2 + 1 n a i ∑i = 1n2ai = ∑i = n2 + 1nai).
Si hay varias respuestas, puede imprimir cualquiera. No se garantiza que exista la respuesta.
Debe responder t t casos de prueba independientes.
La primera línea de la entrada contiene un número entero t t ( 1 ≤ t ≤ 10 4 1≤t≤104): el número de casos de prueba. Entonces t casos de prueba t siguen.
La única línea del caso de prueba contiene un número entero n n ( 2 ≤ n ≤ 2 ⋅ 10 5 2≤n≤2⋅105): la longitud de la matriz. Se garantiza que n n es par (es decir, divisible por 2 2).
Se garantiza que la suma de n n en todos los casos de prueba no exceda de 2 ⋅ 10 5 2⋅105 ( ∑ n ≤ 2 ⋅ 10 5 ∑n≤2⋅105).
Para cada caso de prueba, imprima la respuesta: " NO" (sin comillas), si no hay una respuesta adecuada para el caso de prueba dado o " SÍ" en la primera línea y cualquier matriz adecuada a 1 , a 2 , ... , a n a1, a2, ..., an ( 1 ≤ a i ≤ 10 9 1≤ai≤109) satisfacen las condiciones del enunciado del problema en la segunda línea.
5 2 4 6 8 10
NO SÍ 2 4 1 5 NO SÍ 2 4 6 8 1 3 5 11 NO
estructura casual. . . Nota: Cuando n / 2 es impar, no funcionará, porque la primera mitad y la mitad par son impares y no deben ser iguales.
#include <bits / stdc ++. h> usando el espacio de nombres std; int main () { int t; cin >> t; while (t-- ) { int n; cin >> n; if ((n / 2 )% 2 ! = 0 ) { cout << " NO " << endl; continuar ; } cout << " SÍ " << endl; vector < int > v1, v2; int i; para (i = 1 ; i <= n / 2 ; i ++) v1.push_back (i * 2 ); para (i = 1 ; i <= n / 2 - 1 ; i ++) v2.push_back (i * 2 - 1 ); v2.push_back (n / 2 + 2 * n / 2 - 1 ); para (i = 0 ; i <v1.size (); i ++) cout << v1 [i] << ' ' ; para (i = 0; i <v2.size (); i ++) cout << v2 [i] << ' ' ; cout << endl; } devuelve 0 ; }