1212 - Jingle Composing
Forum rules
Remember that posting AC code is not allowed here. If you are going to ask a question or to post a solution, describe your algorithm instead. Posting AC code will be penalized.
Remember that posting AC code is not allowed here. If you are going to ask a question or to post a solution, describe your algorithm instead. Posting AC code will be penalized.
Re: 1212 - Jingle Composing
TLE on C#, C++ & C++11. Even tried a code i found on internet, marked as a solution for C++
Re: 1212 - Jingle Composing
Eso se resume, a dada una serie de caracteres que tienen asociados valores fraccionales, decir si suman 1. No creo que ese procedimiento sea tan lento. Revisa la implementacion. Al final no pueden haber errores de precision con las comas porque las divisiones se hacen por potencias de 2, eso da "exacto".
-
- Posts: 97
- Joined: 5 years ago
- Gender:
Re: 1212 - Jingle Composing
Yonny, entiendo que este ejercicio tiene el mismo problema que WERTYU. Envie una solucion que detecta '\r' y fallo con un error, que indica que se encontro el caracter.
Re: 1212 - Jingle Composing
No uso división ni decimales, se le asigna un valor entero de 1 a 64 a cada letra, si suman 64 es lo mismo que si suman 1 usando fracciones.
Es mas rápido así.
Un simple for para comparar cada carácter. Es un algoritmo sencillo.
Para leer uso
while (cin >> s, s != "*")
y para imprimir
cout << correct << '\n';
Sigue excediéndose en tiempo. Quiere decir que algún truco de lectura o escritura me hace falta.
Este problema yo lo presente en el concurso real de ACM hace varios años, aunque en Java, y fue uno de los que resolvimos a la primera. Aqui vale solo 0.23.
Alguien lo ha resuelto recientemente, como 1 mes mas o menos?
Es mas rápido así.
Un simple for para comparar cada carácter. Es un algoritmo sencillo.
Para leer uso
while (cin >> s, s != "*")
y para imprimir
cout << correct << '\n';
Sigue excediéndose en tiempo. Quiere decir que algún truco de lectura o escritura me hace falta.
Este problema yo lo presente en el concurso real de ACM hace varios años, aunque en Java, y fue uno de los que resolvimos a la primera. Aqui vale solo 0.23.
Alguien lo ha resuelto recientemente, como 1 mes mas o menos?
Re: 1212 - Jingle Composing
Ya encontré lo que necesitaba, el mismo código pero usando las funciones 'gets' o 'scanf', y lo acepto sin problema.
A pesar de que recomiendan no usar esas funciones, supongo que aquí es otro mundo.
A pesar de que recomiendan no usar esas funciones, supongo que aquí es otro mundo.
Re: 1212 - Jingle Composing
prueba enviar tu solución usando cin / cout, pero esta vez incluye las siguientes lineas justo despues de la funcion main(), algo así:
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
//aqui iría el resto del código
}
saludos
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
//aqui iría el resto del código
}
saludos
teruel
Re: 1212 - Jingle Composing
@dpaladin: Yo opino todo lo contrario, creo que son las dos funciones mas eficientes para leer y en ocasiones, simplifican mucho el codigo, pero eso ya es a gusto del consumidor.
Re: 1212 - Jingle Composing
@isaac si te refieres a las funciones scanf / printf , es cierto que si son mas rapidas a la hora de la lectura, pero cin / cout con los buffer de escritura las superan facilmente cuando hay que escribir un poco, pues el printf va escribiendo hacia la stdout exactamente cuando se le pide, sin embargo el buffer del cout va acumulando la informacion y la escribe de golpe cuando se va llenando el buffer, sin el buffer es notable la ventaja de printf sobre cout, pero esto se debe a que cout esta sincronizado con printf porque trabaja de forma distinta y para no alterar el orden de escritura, y eso lo hace lento.
te garantizo que esta mas que comprobado en la practica, si quieres mira este ejemplo en el prob 1751, dos soluciones identicas
scanf / printf: http://coj.uci.cu/24h/submission.xhtml?id=1024665 TLE Case 3 & Case 4
cin / cout: http://coj.uci.cu/24h/submission.xhtml?id=1024669 AC
PD: si van a usar este modo de lectura - escritura usen "\n" en vez de endl para fin de linea, pues endl fuerza el vaciado del buffer y se pierde lo que se esta buscando que es optimizar a la hora de escribir.
te garantizo que esta mas que comprobado en la practica, si quieres mira este ejemplo en el prob 1751, dos soluciones identicas
scanf / printf: http://coj.uci.cu/24h/submission.xhtml?id=1024665 TLE Case 3 & Case 4
cin / cout: http://coj.uci.cu/24h/submission.xhtml?id=1024669 AC
PD: si van a usar este modo de lectura - escritura usen "\n" en vez de endl para fin de linea, pues endl fuerza el vaciado del buffer y se pierde lo que se esta buscando que es optimizar a la hora de escribir.
teruel