¿Cómo escribir el código en lenguaje C para Luogu P1154 Niulan?
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;
}