# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1156105 | aarb_.tomatexd | Scales (IOI15_scales) | C++20 | 0 ms | 0 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 {