 
 #define NUM_THREADS 512 // El número mínimo de threads es 32 (por el tamaño de warp) y el maximo 1024
 
-void initAllProductsBuyOptions(int *all_products_buy_options);
-
-void printAllProductsAllBuyOptions(int *all_products_buy_options);
-void getBestBuyOptions(int *all_products_buy_options, int *best_buy_options);
-void printBestBuyOptions(int *best_buy_options);
-
-bool areResultsValid(int *all_products_buy_options, int *best_buy_options);
+void initAllProductsBuyOptions(unsigned int *all_products_buy_options);
+
+void printAllProductsAllBuyOptions(unsigned int *all_products_buy_options);
+void getBestBuyOptions(unsigned int *all_products_buy_options, unsigned int *best_buy_options);
+void printBestBuyOptions(unsigned int *best_buy_options);
+
+bool areResultsValid(unsigned int *all_products_buy_options, unsigned int *best_buy_options);
 
 // ToDo: Cada thread ejecuta el kernel.
 // Identificar el thread en el que estamos, en base a esto, calculamos si nos toca trabajar y, en caso afirmativo

    }
}

void initAllProductsBuyOptions(int *all_products_buy_options)
{
    // START Vector all the buy options for the product 1


   return true;
}

void printAllProductsAllBuyOptions(unsigned int *all_products_buy_options)
{
    cout << "All products buy options:" << endl;
    for (unsigned int i = 0; i < NUM_PRODUCTS; ++i){
        cout << endl << "\tproduct_id: " << i << endl;
        for (unsigned int j = 0; j < NUM_BUY_OPTIONS*2; j += 2){
            cout << "Buy option:" << endl;
            cout << "\tstore_id: " << all_products_buy_options[i*NUM_BUY_OPTIONS*2+j] << endl;
            cout << "\tprice: " << all_products_buy_options[i*NUM_BUY_OPTIONS*2+j+1] << endl;
