TOPIC
Submissão - 10% Wrong Answer
LucasHenrique asked 6 years ago
Minha submissão gerou 10% de wrong answer apenas. Entretanto, para todos os casos de teste que eu tentei, a resposta está correta. Como eu encontro uma possível excessão para meu algoritmo? Há algum debug que possa usar?
-
vvilela2 replied 5 years ago
Eu gerei todos os casos de teste "possíveis" (todos os tamanhos de entrada e todos os caracteres imprimíveis) e as saídas da sua e da minha solução bateram.... Será que não pode ser um bug de codificação na hora de ler a entrada e aí o seu programa acaba imprimindo caracteres errados...? Não pode ser.
Eu ainda tentei portar o seu código pra C# e mesmo assim dá 10% de erro... De qualquer maneira, tenho mais casos de teste aqui, mas como disse, todos bateram com a minha saída e com o seu código atual... https://paste.ee/p/4uZHJ
-
vvilela2 replied 5 years ago
Então vamos resolver isso. Mais caso de teste (N = 199):
Entrada:
199 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut. 0
Saída:
e isbiloiianuunpm , ndqm,oximr e i epedspdt r maq t ranlobssto uo tocudsgisdioercd lrtl nlatidnvim usnsrdeectto lac aoi iiu.Lrmismdlrstae,cnettraiicn lt e oeumdtmo niiutu aoee ooemgaaiu.U nma ii e
Entrada:
129 Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa q 0
Saída:
ct iimaro tmdeetcnsaoomnl iapes ppa eni ur utasidruanmo r,qi eu esiitsud mi sentserrstvlpae cuatu ooeqeluatu,ttmrmaeim au paqSd
Entrada:
127 At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos d 0
Saída:
btmame sdmiotiv s didqdrutltrotrotcmeu ogsscsiat et utdn uopq A eoese cuau tisooi insio uiu u lniispasnimvlpau eeiiaqecrut usd
(por quê eu não uni esses casos de teste, agora que estou pensando?... não sei. mas bom, se ainda passarem e não der nada de errado, poste o código!)
-
vvilela2 replied 5 years ago
Não sei qual é o regulamento do fórum em relação a responder tópicos antigos, mas como esse problema não tem uDebug ainda e alguns (como eu agora a pouco) estão perdidos em relação a esse problema, aqui estão alguns casos de testes pra quem precisar. Espero que seja útil!
Entrada:
1 a 2 ab 3 abc 4 abcd 5 abcde 6 abcdef 7 abcdefg 8 abcdefgh 9 abcdefghi 10 abcdefghij 11 abcdefghijk 12 abcdefghijkl 13 abcdefghijklm 14 abcdefghijklmn 15 abcdefghijklmno 16 abcdefghijklmnop 17 abcdefghijklmnopq 18 abcdefghijklmnopqr 19 abcdefghijklmnopqrs 20 abcdefghijklmnopqrst 21 abcdefghijklmnopqrstu 22 abcdefghijklmnopqrstuv 23 abcdefghijklmnopqrstuvw 24 abcdefghijklmnopqrstuvwx 25 abcdefghijklmnopqrstuvwxy 26 abcdefghijklmnopqrstuvwxyz 0
Saída:
a ba bac cbda dbeac dbface dbfaceg ecgbdfha fdhbegiac gdibfhjace hdjbfikaceg hdkbfjlacegi hdlbfjmacegik hdlbfjnacegikm hdlbfjnacegikmo iemcgkobdfhjlnpa jfndhlpbegikmoqac kgodimqbfhjlnprace lhpdjnrbfikmoqsaceg mhqdkosbfjlnprtacegi nhrdlptbfjmoqsuacegik ohsdlqubfjnprtvacegikm phtdlrvbfjnqsuwacegikmo phudlswbfjnrtvxacegikmoq phvdltxbfjnruwyacegikmoqs phwdltybfjnrvxzacegikmoqsu
Luis, dei uma olhada nos seus casos de teste aleatórios mas não entendi, a maioria deles geram resultados com tamanhos diferentes e o tamanho da string na primeira linha é diferente da string atual. É isso mesmo?
-
vvilela2 replied 5 years ago
Bom... nada ainda?
Eu construí minha solução usando uma representação estilo heap (representação de árvore binária em um vetor) e a partir daí fui preenchendo a string de saída enquanto 'navegava' nessa árvore... Mas estranho não dar certo mesmo com entradas de todos os tamanhos...
Já tentou portar seu código também pra C ou C++? Nunca sabemos se também pode ou não ser um bug na parte do judge...
-
LucasHenrique replied 5 years ago
Vitor, todas as saídas de todos os casos de teste que me sugeriu estão exatamente iguais. Segue abaixo o meu código:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack;
public class Decodificando {
public static void main(String[] args) throws IOException { InputStreamReader ir = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(ir); int num = Integer.parseInt(in.readLine()); int[] vet = {0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023}; while (num != 0) { String[] codigo = in.readLine().split(""); int i = 0; for (int j = 0; j < vet.length; j++) { if (vet[j] < codigo.length) { i = j; } } int folhas = codigo.length - vet[i]; Stack pilha = new Stack<>(); while (i >= 0) { String aux = ""; String novaString = ""; for (int j = 0; j < codigo.length; j++) { if (j % 2 == 0 && folhas > 0) { aux += codigo[j];```` folhas--; } else { novaString += codigo[j]; } } pilha.push(aux); i--; if (i != -1) { codigo = novaString.split(""); folhas = vet[i] + 1; } } String result = ""; while (!pilha.isEmpty()) { result += pilha.pop(); } System.out.println(result); num = Integer.parseInt(in.readLine()); } }
}
-
LucasHenrique replied 5 years ago
Vitor, eu testei todas as suas entradas com o meu algoritmo e geraram as mesmas saídas. Entretanto, continuo recebendo 10% de Wrong Answer.
-
lfvtrivelatto replied 6 years ago
Parece que o limite de N está errado, submetendo com assert parece que o limite correto é N < 250 (o estranho é que meu código passou declarando strings de tamanho 205). De qualquer jeito segue alguns testes aleatórios: http://www.heypasteit.com/clip/0IIW1U
-
fcouto replied 6 years ago
Estou com o mesmo problema, todas as minhas submissões geraram Wrong Answer (10%)!
-
drangelp replied 6 years ago
Por hora não, pois se trata de um problema novo e demora alungs dias até o URI liberar o Debug desse problema. Por hora é aguardar :/