João e seu amigo pé de feijão
procuram por elementos parecidos. Um certo dia, João encontrou dois conjuntos de números, o pé de feijão
achou que eles pudessem ser idênticos (isto é, que possuindo o mesmo conjunto de números). No entanto, ambos não conseguem identificar rapidamente esta suposição, para tanto pediram SUA ajuda para implementar um programa PARALELO que consiga ler os dois conjuntos de números e identificar se eles são idênticos ou não.
A entrada possui um único caso de teste. A primeira, do caso de teste, possui um inteiro () representando os tamanhos dos vetores. A segunda linha, do caso teste possui inteiros () (cabe em um int de 32 bits), e a terceida linha possui inteiros ().
A saída possui uma única linha contendo a frase Diferentes
, caso os vetores não sejam idênticos (depois de ordenados), ou Mesmos elementos
caso os vetores sejam idênticos (depois de ordenados).
Implementar a solução utilizando o conceito de threads. O algoritmos sequencial (e ineficiente) está representado abaixo:
int main(void)
{
le_tamvetores(TAM)
le_v1()
le_v2()
Ordena(v1)
Ordena(v2)
Compara(v1,v2)
if iguais; then
print "Mesmos elementos"
else
print "Diferentes"
return 0;
}
Para agilizar, você poderá utilizar a função qsort(3)
(da libc) para ordenar o vetor. Mas não se engane, se não ordenar os dois vetores paralelamente, você vai levar TLE :(
Caso nunca tenha utilizado a função qsort(3)
leia o seu manual.
5
5 4 3 2 1
1 2 3 4 5
Mesmos elementos
5
5 4 3 2 1
1 5 2 4 3
Mesmos elementos
5
1 1 3 1 1
1 1 2 1 1
Diferentes
5
1 7 3 1 9
9 1 2 7 1
Diferentes
5
2 7 1 1 9
9 1 2 7 1
Mesmos elementos