Submission #1156105

#TimeUsernameProblemLanguageResultExecution timeMemory
1156105aarb_.tomatexdScales (IOI15_scales)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "scales.h" using namespace std; void init(int t) { // No se requiere inicialización especial. } void orderCoins() { // Ordenamos el Grupo 1 (monedas 1,2,3) int L1 = getLightest(1, 2, 3); int M1 = getMedian(1, 2, 3); int H1 = getHeaviest(1, 2, 3); // Ordenamos el Grupo 2 (monedas 4,5,6) int L2 = getLightest(4, 5, 6); int M2 = getMedian(4, 5, 6); int H2 = getHeaviest(4, 5, 6); // Cada grupo ya está ordenado (de menor a mayor) vector<int> group1 = {L1, M1, H1}; vector<int> group2 = {L2, M2, H2}; // Determinamos la moneda más pesada de todas (la overallHeaviest). // Por ejemplo, comparamos H1 y H2 usando a la vez L1 para tener tres monedas. int overallHeaviest = getHeaviest(H1, H2, L1); // Función de comparación: dada dos monedas a y b, determinamos cuál es menor. // Usamos overallHeaviest como tercer parámetro (siempre que no sea uno de ellos). auto cmp = [&](int a, int b) -> bool { // Si alguno es la overallHeaviest, ese es mayor. if(a == overallHeaviest) return false; if(b == overallHeaviest) return true; // La función getLightest(a, b, overallHeaviest) devolverá la más liviana entre a y b. int res = getLightest(a, b, overallHeaviest); return (res == a); // Si devuelve a, entonces a < b. }; // Fusionamos las dos listas ordenadas (como en el merge de MergeSort). vector<int> merged; int i = 0, j = 0; while(i < 3 && j < 3) { if(cmp(group1[i], group2[j])) { merged.push_back(group1[i]); i++; } else { merged.push_back(group2[j]); j++; } } while(i < 3) { merged.push_back(group1[i]); i++; } while(j < 3) { merged.push_back(group2[j]); j++; } // Se reporta la lista final, ordenada de la moneda más liviana a la más pesada. answer(merged); }

Compilation message (stderr)

scales.cpp: In function 'void orderCoins()':
scales.cpp:61:12: error: cannot convert 'std::vector<int>' to 'int*'
   61 |     answer(merged);
      |            ^~~~~~
      |            |
      |            std::vector<int>
In file included from scales.cpp:2:
scales.h:10:17: note:   initializing argument 1 of 'void answer(int*)'
   10 | void answer(int W[]);
      |             ~~~~^~~