1) Primeiramente tentei inserir os elementos ordenadamente, assim eu teria um vetor ordenado e apenas utilizava a busca binária.
Porém tomei "Tempo Limite Excedido".
2) Então para diminuir o vetor eu tentei impedir que elementos repetidos sejam adicionados, quando o algoritmo encontrava a posição correta para a inserção eu verificava se alí não existia um elemento igual, caso sim eu não o inseria novamente. Porém a resposta foi a mesma
3) Também tentei colocar os elementos no vetor na ordem em que eram informados e realizar uma busca sequencial. O problema persiste.
Fiquei um bom tempo, mas não consegui sair do TLE
Muito Obrigado
Obs: código do subprograma que insere elementos ordenadamente
int insere_ordenado(int *v,int x, int n){ inti,j; for (i=0;((i<n)&&(v<x));i++); //procura o local da inserção if ((v==x)) //caso já tenha um elemento igual alí return 1; for (j=n;j>i;j--) // desloca os elementos necessários
v[j]=v[j-1];
v=x; // insere return0;
}
Pergunta
cristianpastro
Olá, eu estou com dificuldades neste problema:
http://br.spoj.com/problems/PROIBIDO/
1) Primeiramente tentei inserir os elementos ordenadamente, assim eu teria um vetor ordenado e apenas utilizava a busca binária.
Porém tomei "Tempo Limite Excedido".
2) Então para diminuir o vetor eu tentei impedir que elementos repetidos sejam adicionados, quando o algoritmo encontrava a posição correta para a inserção eu verificava se alí não existia um elemento igual, caso sim eu não o inseria novamente. Porém a resposta foi a mesma
3) Também tentei colocar os elementos no vetor na ordem em que eram informados e realizar uma busca sequencial. O problema persiste.
Fiquei um bom tempo, mas não consegui sair do TLE
Muito Obrigado
Obs: código do subprograma que insere elementos ordenadamente
int insere_ordenado(int *v,int x, int n){
int i,j;
for (i=0;((i<n)&&(v<x));i++); //procura o local da inserção
if ((v==x)) //caso já tenha um elemento igual alí
return 1;
for (j=n;j>i;j--) // desloca os elementos necessários
v[j]=v[j-1];
v=x; // insere
return 0;
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.