TÓPICO

Duvida sobre o problema

Wellerson Salvatore perguntou 3 years ago

Alguem poderia explicar esse problema? já li varias vezes e ainda não consegui entender muito bem.

Este tópico foi resolvido e não pode receber novas respostas.

  • Wellerson Salvatore respondido 2 years ago

    Até agora nao consegui saber o porque de 100% de erro quem pode ajudar:

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) throws IOException {
    
            Scanner entrada = new Scanner(System.in);
            while(true) {
                int n = entrada.nextInt();
                if (n == 0) {
                    break;
                }else {
                    int a[] = new int[n];
                    int b[] = new int[n];
                    int cont = 0, aux = 0;
    
                    for (int i = 0; i < b.length; i++) {
                        a[i] = entrada.nextInt();
                    }
    
                    for (int i = 0; i < b.length; i++) {
                        b[i] = entrada.nextInt();
                    }
    
                    for (int i = 0; i < a.length; i++) {
                        ArrayList<Integer> a1 = new ArrayList<>();
                        for (int j = 1; j <= a[i]; j++) {
                            if (a[i] % j == 0) {
                                a1.add(j);
                            }
                        }
    
                        for (int j = 0; j < b.length; j++) {
                            ArrayList<Integer> b1 = new ArrayList<>();
                            for (int k = 1; k <= b[j]; k++) {
                                if (b[j] % k == 0) {
                                    b1.add(k);
                                }
                            }
    
                            for (int j3 = 0; j3 < a1.size(); j3++) {
                                for (int j2 = 0; j2 < b1.size(); j2++) {
                                    if (a1.get(j3) == b1.get(j2)) {
                                        cont++;
                                        break;
                                    }
                                }
                            }
    
                            if (cont == 1) {
                                aux++;
                                cont = 0;
                            }else {
                                cont = 0;
                            }
                        }
                    }
                    System.out.println(aux * 2);
                }
            }
    
        }
    
    }
  • Wellerson Salvatore respondido 3 years ago

    Ja fiz tudo o que podia pra essa questão e continua dando 100% de erro... Já fiz pra que não houvesse numeros repetidos, fiz com numeros repetidos e nada da certo... mas os casos de teste passam e alguns que inventei aqui tambem dão certos...

  • Wellerson Salvatore respondido 3 years ago

    com numeros repetidos você quer dizer que:

    A -> 1 2 3 4 5
    B -> 2 4 6 8 10
    (1,2),(1,4),(1,6),(1,8),(1,10)
    (2,1),(4,1),(6,1),(8,1),(10,1)
    (3,2),(3,4),(3,8),(3,10)
    (2,3),(4.3),(8,3),(10,3)
    (5,2),(5,4),(5,6),(5,8)
    (2,5),(4,5),(6,5),(8,5)

    porque se for isso eu pensei sim e fiz a implementação no codigo. Ou com numero repetido você quis dizer:

    A -> 1 2 2 3 4
    B -> 2 4 4 6 8

    se for isso eu não havia pensado...

  • 🧙The Install Wizard 🧙 respondido 3 years ago

    Voce esta assumindo que A ou B podem ter numeros repetidos ?

  • Wellerson Salvatore respondido 3 years ago

    Olhando melhor consegui identificar e ficou assim:

    (1,2),(1,4),(1,6),(1,8),(1,10)
    (3,2),(3,4),(3,8),(3,10)
    (5,2),(5,4),(5,6),(5,8)

    porem implementei essa logica no codigo e deu 100% de erro, mas os casos de teste deram certo e até uns que inventei aqui.

  • Wellerson Salvatore respondido 3 years ago

    Até ai tudo bem, um numero é par pareado se o maior divisor entre X e Y for 1, mas no primeiro caso de teste da questão eu fiz em um papel e ficou assim:

    (1,2),(1,4),(1,6),(1,8),(1,10)
    (3,2),(3,4)
    (5,2),(5,4),(5,6),(5,8)

    totalizando 11 termos ai multiplicando por 2 já que pode ter duas opções ficaria 22 e na saida do exemplo tá lá 26 e não consegui identificar o porque.

  • 🧙The Install Wizard 🧙 respondido 3 years ago

    (2, 4) não é um par pareado porque o maior numero natural que divide ambos é 2. Ja no par (3, 5) o maior divisor é 1. A resposta do exemplo é obtida ao descobrir quais pares tem divisor comum igual a 1 entre todos os pares (X,Y) possíveis, onde X é um elemento de A e Y um elemento de B.

  • Wellerson Salvatore respondido 3 years ago

    essa parte 'um par é pareado se o maior divisor comum dos valores contidos no par for igual a 1. Por exemplo: (2, 4) não é um par pareado, mas (3, 5) sim. Segue um exemplo completo:

    A = {3, 2} B = {2, 5}

    A resposta é: 6 e todos os pares pareados possíveis são: (3, 2) (2, 3) (3, 5) (5, 3) (2, 5) (5, 2).'

  • 🧙The Install Wizard 🧙 respondido 3 years ago

    Qual a parte que esta sendo dificil de entender ? O que voce conseguiu entender do problema ?