# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1156098 | aarb_.tomatexd | Scales (IOI15_scales) | C++20 | 0 ms | 320 KiB |
#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
void init(int t) {}
void orderCoins() {
vector<int> W(6); // Arreglo donde almacenaremos el orden final
// 1. Encontrar la moneda más ligera y la más pesada en solo dos llamadas
int L = getLightest(1, 2, 3); // La más ligera entre {1, 2, 3}
int H = getHeaviest(4, 5, 6); // La más pesada entre {4, 5, 6}
// 2. Determinar una moneda intermedia
int M = getMedian(L, H, 3); // Encuentra una moneda intermedia
// 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;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |