Pesquisar na Comunidade
Mostrando resultados para as tags ''PROBLEMA EM C++''.
Encontrado 1 registro
-
cara por favor se possível faça isso pra mim urgente:eu sei a lógica mais ta dando errado: Os compactadores de arquivos trabalham retirando redundância do arquivo. Por exemplo, palavras ou até partes de um texto que aparecem várias vezes podem ser escritas uma vez só, e para as demais ocorrências são gravadas apenas referências a algo que já apareceu antes. Em imagens, grandes blocos de cores iguais podem ser resumidos a uma cor e quantas vezes ela é repetida. Um compactador bastante simples é um que troca uma sequência de caracteres iguais por um par de valores: quantas vezes o caractere ocorre, e qual é esse caractere. Veja o exemplo a seguir: Arquivo original: GGGGTTTTTCCAAAAAAAAAAAGGGGAAAAAACTTTTTAAAGGGGGGGGGGGGG Compactado: 4G5T2C11A4G6A1C5T3A13G A descompactação também é simples, lê-‐se um número e um caractere, e esse caractere é escrito repetidamente tal número de vezes. Note que esse compactador só reduz realmente o tamanho do arquivo se houver sequência com mais de 2 caracteres iguais consecutivos. De fato, quando há apenas 2 caracteres não há ganho algum (como na primeira sequência de C’s, onde CC é substituído por 2C). E quando não há repetição, a compactação na verdade aumenta o tamanho (como na segunda sequência de C, onde C é substituído por 1C). Você deve fazer um programa para fazer a compactação de um arquivo da forma como mostrado acima. O arquivo contém apenas letras (maiúsculas ou minúsculas) e possui um flag no final para sinalizar o final da entrada (um caractere ‘.’). O “arquivo” na verdade será uma sequência de letras lidas como entrada do programa. Entrada O programa terá apenas um caso de teste. O caso de teste é descrito em uma única linha, que contém uma sequência de letras terminada por um caractere ‘.’. Não há limite para a quantidade total de letras mas nenhuma sequência tem mais de 1000 letras iguais seguidas. Saída Seu programa gera apenas uma linha de saída, contendo o resultado da compactação da entrada. Imprima um ‘0’ (zero) após o final da sequência compactada. Não se esqueça de encerrar a linha após a impressão do resultado. Exemplos Entrada: AAAAAAAAAARRRRAAAAA. Saída: 10A4R5A0 Entrada: AAAAaaaAAAAAAa. Saída: 4A3a6A1a0 Entrada: GOOOOOOOOOOOOOOOLLLLLL. Saída: 1G15O6L0 Entrada: Pernambuco. Saída: 1P1e1r1n1a1m1b1u1c1o0