Submission #1156103

#TimeUsernameProblemLanguageResultExecution timeMemory
1156103aarb_.tomatexdScales (IOI15_scales)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> #include "scales.h" using namespace std; void init(int t) {} void orderCoins() { vector<int> W(6, -1); // Inicializamos con -1 para evitar valores incorrectos // 1. Encontrar la moneda más ligera y la más pesada de {1,2,3} y {4,5,6} int L = getLightest(1, 2, 3); // Encuentra la más ligera entre {1, 2, 3} int H = getHeaviest(4, 5, 6); // Encuentra la más pesada entre {4, 5, 6} // 2. Determinar una moneda intermedia correcta int possible_medians[] = {1, 2, 3, 4, 5, 6}; int M = -1; for (int x : possible_medians) { if (x != L && x != H) { M = x; break; // Tomamos la primera moneda válida como mediana } } // Validación para evitar errores if (M == -1) { cerr << "Error: No se encontró una mediana válida." << endl; return; } // 3. Identificar las tres monedas restantes vector<int> remaining; for (int i = 1; i <= 6; i++) { if (i != L && i != H && i != M) remaining.push_back(i); } // 4. Encontrar las monedas en orden usando `getNextLightest` int L2 = getNextLightest(remaining[0], remaining[1], remaining[2], L); int L3 = getNextLightest(remaining[0], remaining[1], remaining[2], L2); int H2 = getNextLightest(remaining[0], remaining[1], remaining[2], L3); // La última será la más pesada de este grupo // 5. Asignar los valores encontrados al array final W[0] = L; W[1] = L2; W[2] = L3; W[3] = M; W[4] = H2; W[5] = H; // 6. Llamamos a answer con el orden final answer(W.data()); }
#Verdict Execution timeMemoryGrader output
Fetching results...