Submission #1126808

#TimeUsernameProblemLanguageResultExecution timeMemory
1126808BlancaHMScales (IOI15_scales)C++17
Compilation error
0 ms0 KiB
#include "scales.h" #include <vector> #include <algorithm> using namespace std; void init(int T) { return; } // Encuentra la mas ligera de las monedas dadas int encontrarMasLigera(vector<int> & monedas) { // Primero, nos guardamos todos los numeros que no aparecen para usarlos en // preguntas. Sabemos que son mas pesados que los que quedan. vector<int> extras; for (int i = 1; i <= 6; i++) { if (find(monedas.begin(), monedas.end(), i) == monedas.end()) { extras.push_back(i); } } // Encontramos la mas ligera de las primeras 3 monedas. int monedasPregunta[3]; for (size_t i = 0; i < 3; i++) { if (i < monedas.size()) { monedasPregunta[i] = monedas[i]; } else { monedasPregunta[i] = extras[i - monedas.size()]; } } int masLigera1 = getLightest( monedasPregunta[0], monedasPregunta[1], monedasPregunta[2] ); if (monedasPendientes.size() <= 3) { return masLigera1; } // Encontramos la mas ligera de las segundas 3 monedas. for (size_t i = 3; i < 6; i++) { if (i < monedas.size()) { monedasPregunta[i - 3] = monedas[i]; } else { monedasPregunta[i - 3] = extras[i - monedas.size()]; } } int masLigera2 = getLightest( monedasPregunta[0], monedasPregunta[1], monedasPregunta[2] ); int extra; // Finalmente, encontramos la mas ligera de las dos monedas "ganadoras". for (int i = 1; i <= 6; i++) { if (i != masLigera1 && i != masLigera2) { extra = i; break; } } return getLightest(masLigera1, masLigera2, extra); } void orderCoins() { vector<int> monedasPendientes = {1, 2, 3, 4, 5, 6}; int respuesta[6]; int masLigera; // Resolvemos el problema de forma iterativa encontrando la mas ligera while (!monedasPendientes.empty()) { masLigera = encontrarMasLigera(monedasPendientes); respuesta[6 - monedas.size()] = masLigera; monedasPendientes.erase( find(monedasPendientes.begin(), monedasPendientes.end(), masLigera) ); } answer(respuesta); }

Compilation message (stderr)

scales.cpp: In function 'int encontrarMasLigera(std::vector<int>&)':
scales.cpp:34:9: error: 'monedasPendientes' was not declared in this scope
   34 |     if (monedasPendientes.size() <= 3) {
      |         ^~~~~~~~~~~~~~~~~
scales.cpp: In function 'void orderCoins()':
scales.cpp:69:23: error: 'monedas' was not declared in this scope
   69 |         respuesta[6 - monedas.size()] = masLigera;
      |                       ^~~~~~~