#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int *pares, *impares, qtdPares = 0, qtdImpares = 0;
    int *vetorPrincipal, tamanho = 5;
    int i;

    vetorPrincipal = (int *) malloc(tamanho*sizeof(int));

    //ler os valores do vetor
    for (i = 0; i < tamanho; i++) {
        printf("Valor %d: ", i+1);
        scanf("%d", &vetorPrincipal[i]);

        if (vetorPrincipal[i] % 2 == 0) {
            qtdPares++;
        } else {
            qtdImpares++;
        }
    }

    //alocando dinamicamente a memória para os pares e impares
    pares = (int *) malloc(qtdPares*sizeof(int));
    impares = (int *) malloc(qtdImpares*sizeof(int));

    //inserindo os valores pares e impares em seus vetores
    int i_par = 0;
    int i_impar = 0;

    for (i = 0; i < tamanho; i++) {
        if (vetorPrincipal[i] % 2 == 0) {
            pares[i_par] = vetorPrincipal[i];
            i_par++;
        }
        else {
            impares[i_impar] = vetorPrincipal[i];
            i_impar++;
        }
    }

    //imprimir o vetor principal
    printf("\nVetor = [ ");
    for (i = 0; i < tamanho; i++) {
        printf("%d ", vetorPrincipal[i]);
    }
    printf("]");

    //imprimir pares e impares
    printf("\n\nNúmeros PARES = [ ");
    for (i = 0; i < qtdPares; i++) {
      printf("%d ", pares[i]);
    }
    printf("]");

    printf("\nNúmeros IMPARES = [ ");
    for (i = 0; i < qtdImpares; i++) {
      printf("%d ", impares[i]);
    }
    printf("]");

    return 0;
}