Red de conocimiento informático - Conocimiento sistemático - ¿Cómo escribir el código en lenguaje C para Luogu P1154 Niulan?

¿Cómo escribir el código en lenguaje C para Luogu P1154 Niulan?

Si para una cierta K, dos vacas numeradas A y B son asignadas al mismo establo.

Es decir, a%k = 0, b%k = 0, entonces |a-b|%k = 0.

De esta manera, se pueden recorrer todos A y B de antemano, se calculan sus diferencias y se marcan con la matriz vis.

Mientras no haya múltiplos de K en vis, es decir, no hay dos números congruentes módulo K, este K cumplirá los requisitos.

Luego juzgue uno por uno a partir del valor mínimo n, y el primer k que cumpla con los requisitos es la demanda.

El código del lenguaje c es el siguiente:

Código fuente adicional:

# include & ltstdio.h & gt

# include & ltstdlib. h & gt

#Definición K 100001

int a[5000]; //Todos los números de vacas

int vis[K];?

int main() {

int n, I, j, d, k

scanf("%d ", & ampn;

p>

int n, I, j, d, k; p>

for(I = 0;i<n;i++)

scanf("%d ",&a[I]) ;

for(I = 0 ;i<n;i++) {

for(j = 0;j & ltn;j++) {

d = ABS( a[I]-a[j]); // d%k debe ser 0.

vis[d]= 1; //Marca todas las posibles diferencias numéricas conflictivas.

}

}

for(k = n; k & ltk; K++) {//Recorre todos los k posibles comenzando desde el n más pequeño.

If (vis[k] == 0) {// Ni k ni los múltiplos de k están marcados, lo que indica que no hay conflicto entre establos.

d = 1; // marca

for(I = k * 2; i<k; i += k)

si (vis[i ] = = 1) {

d = 0;

Romper

}

Si (d == 1) {/ /Buscar; el k más pequeño.

printf("%d\n ", k

Romper

}

}

}

Devuelve 0;

}