[eside-ghost] Pregunta de Kung Fu C++
Jon Valdés
juanval en gmail.com
Jue Mayo 29 23:27:39 CEST 2008
Bueeeeenas,
Leyendo slashdot me he encontrado una referencia a una página llamada
TopCoder donde hacen torneos de programación (con premios bastante
suculentos), y donde puedes leer las respuestas de la gente que
concursa (después de decirles hasta de qué color llevas los
calzoncillos para que te manden publicidad, claro).
El caso es que en esta página hay gente que hace unas movidas bastante
curiosas al programar, y hay unas cuantas que no sé ni de donde salen.
Por ejemplo esta:
----------------------------------------------------------------------------------------------------------------------------------
#include <algorithm>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
class StreetWalking {
public:
long long minTime(int X, int Y, long long walkTime, long long sneakTime) {
long long ret;
if (X > Y) swap(X, Y);
ret = X*walkTime + Y*walkTime;
ret <?= X*sneakTime + (Y-X)*walkTime;
ret <?= Y*sneakTime + (X%2!=Y%2)*(walkTime-sneakTime);
return ret;
}
};
----------------------------------------------------------------------------------------------------------------------------------
Las lineas esas con <?= me desconciertan :-| Por lo que entiendo del
programa y del enunciado al que responde, me da la impresión de que
ahi comprueba si el resultado de la operación de la derecha es menor
que la variable ret, y si lo es, lo asigna a ret. Si es asi, la verdad
es que es una forma eficaz y rápida de hacerlo... Pero lo que no
entiendo es la sintaxis.
¿Alguien me puede explicar cómo puede funcionar esto en C++? Que la
verdad es que no acabo de captarlo :-(
Muchas graaaaacias
Taluegooo
Más información sobre la lista de distribución eside-ghost