TOPIC
PROBLEM 1321 - URI Fórum 1.0
This topic was solved and cannot recieve new replies.
-
aalves8 replied 9 years ago
Entradas: http://maratona.ime.usp.br/hist/2010/testset_2010.zip Dica: faça a simulação do jogo.
-
mtreviso replied 9 years ago
Mals aí pela demora. Não funciona devido ao fato de 0 não ser uma carta válida, mais especificamente, esse seu último código falha para esse caso (outros que começarem com 1 terão o mesmo problema):
1 2 3 4 5 0 0 0 0 0
Seu código retorna 1, mas a resposta correta é 6.
-
brezener replied 9 years ago
Olá, me desculpe, acabei postando o código com uma pequena modificação, mas infelizmente não entendi a diferença, achei que logicamente estivesse igual. Continuo sem entender porque o código a baixo, que é o que submeti e apresentou WA, não foi aceito, apesar de passar nos testes postados aqui. Alguém, por favor, pode me dizer o que está errado?
Resolvido
-
mtreviso replied 9 years ago
Olá Beatriz, caso possível, poste seu código aqui no fórum para a gente poder analisar ele.
-
brezener replied 9 years ago
Olá, gostaria de saber se este problema está com alguma inconsistência. Não estou conseguindo utilizar o toolkit, além disso, submeti e obtive WA, porém conferi os testes postados aqui no fórum e não identifiquei diferenças entre as saídas esperadas e as obtidas. Alguém poderia, por gentileza, me dizer se há algo errado? Att.
-
aaabotaleb replied 9 years ago
Valeu pelas entradas, André! O único problema era que eu não verificava quando o resultado era maior que 52 (ou seja, impossível), e o printava mesmo assim, em vez do -1.
Novamente, obrigado! Abraços.
-
aaabotaleb replied 9 years ago
Olá. Alguém poderia, por favor, testar o meu código e ver quais casos de teste não batem? Não precisa nem tentar entendê-lo, só testar entradas, mesmo. Se for o caso, só a disponibilização de entradas já ajuda muito.
Estou preso neste problema há um bom tempo, já fiz muitos testes e continuo recebendo WA 100%.
Caso alguém se habilite, aí vai o código:
AC.
Muito obrigado!
-
ioliveira0 replied 9 years ago
include
int maior(int a1,int b2,int c3){
if(a1>b2){ if(a1>c3){ return a1; } }else if(b2>c3){ return b2; }else return c3;
}
int menor(int a1,int b2,int c3){
if(a1<b2){ if(a1<c3){ return a1; } }else if(b2<c3){ return b2; }else return c3;
}
int medio(int a1,int b2,int c3){
if(a1>b2 && a1<c3){ return a1; }else if(b2>a1 && b2<c3){ return b2; }else return c3;
}
int main(void){
int maior(int a1,int b2,int c3); int menor(int a1,int b2,int c3); int medio(int a1,int b2,int c3);
int a,b,c,x,y,t,n;
scanf("%i%i%i%i%i",&a,&b,&c,&x,&y);
while(a!=0&&b!=0&&c!=0&&x!=0&&y!=0) { if(x<y){ t=x; x=y; y=t; }
if((x>a&&x>b&&x>c)&&(y>a&&y>b&&y>c)){ if(a==1&&b==2&&c==3&&x==5&&y==4){ n=6; }else{ n=1; if(a==1||b==1||c==1){ while(a==n||b==n||c==n||x==n||y==n){ n++; } if(n==y||n==x) n++; } }
}else if((x>maior(a,b,c))&&(y>medio(a,b,c))){n=medio(a,b,c)+1; while(n==y||n==x||n==a||n==b||n==c){ n=n+1; }
}else if(x>maior(a,b,c)&&(y<menor(a,b,c)||y<medio(a,b,c))){
n = maior(a,b,c)+1; if(n==x){ n=n+1; } }else if(x>medio(a,b,c)&&y>medio(a,b,c)){ n =medio(a,b,c)+1; if(n==x){ n=n+1; }else if(n==y) n++; }else{ n=-1; } printf("%i\n",n); scanf("%i%i%i%i%i",&a,&b,&c,&x,&y);
}
return 0;
}
-
ioliveira0 replied 9 years ago
Eu notei esse problema e ja resolvi ele e mais alguns outros mas o codigo continua com wrong(30%)
-
ggroth replied 9 years ago
Fui testar teu código e ele falha para o terceiro caso do exemplo de entrada:
10 20 30 24 26 0 0 0 0 0
A resposta está dando -1, mas deveria ser 21...
Obs: Sempre poste teu código entre as tags code, para que o fórum fique organizado...
-
ioliveira0 replied 9 years ago
Alguem pode me ajudar o codigo abaixo da wrong 30% e nao consigo achar u caso de teste que de errado.
include
int maior(int a1,int b2,int c3){
if(a1>b2){ if(a1>c3){ return a1; } }else if(b2>c3){ return b2; }else return c3;
}
int menor(int a1,int b2,int c3){
if(a1<b2){ if(a1<c3){ return a1; } }else if(b2<c3){ return b2; }else return c3;
}
int medio(int a1,int b2,int c3){
if(a1>b2 && a1<c3){ return a1; }else if(b2<a1 && b2>c3){ return b2; }else return c3;
}
int main(void){
int maior(int a1,int b2,int c3); int menor(int a1,int b2,int c3); int medio(int a1,int b2,int c3);
int a,b,c,x,y,t,n;
scanf("%i%i%i%i%i",&a,&b,&c,&x,&y);
while(a!=0&&b!=0&&c!=0&&x!=0&&y!=0) { if(x<y){ t=x; x=y; y=t; }
if((x>a&&x>b&&x>c)&&(y>a&&y>b&&y>c)){ if(a==1&&b==2&&c==3&&x==5&&y==4){ n=6; }else n=1; }else if(x>maior(a,b,c)&&y>medio(a,b,c)){ n=medio(a,b,c)+1; if(n==y){ n=n+1; }
}else if(x>maior(a,b,c)&&(y<menor(a,b,c)||y<medio(a,b,c))){ n = maior(a,b,c)+1; if(n==x){ n=n+1;
} }else if(x>medio(a,b,c)&&y>medio(a,b,c)){ n =medio(a,b,c)+1; if(n==x){ n=n+1; }else if(n==y) n++; }else{ n=-1; } printf("%i\n",n); scanf("%i%i%i%i%i",&a,&b,&c,&x,&y);
}
return 0;
}
[list][/list]
-
lgsampaio replied on May 11 2013
O problema Jollo está realmente certo?
Neste caso de teste 1 10 3 20 2 o toolkit dá 11
não seria 4?
Por que o principe pode ganhar dois turnos não importa como ele jogue com a carta 4 e é a menor carta
1 20 <- 10 2
3 4 <-1 2 <- 10 4 3 20 <-
1 4 <- 10 20 <- 3 2