# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1131501 | Ariadna | Scales (IOI15_scales) | C++20 | 0 ms | 320 KiB |
#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
void orderCoins() {
vector<vector<vector<int>>> memo(7, vector<vector<int>>(7, vector<int>(7, -1)));
int W[6];
int l1 = getLightest(1, 2, 3);
int l2 = getLightest(4, 5, 6);
memo[1][2][3] = l1;
memo[4][5][6] = l2;
int a = 1;
if (l1 == 1) a = 2;
W[0] = getLightest(l1, l2, a);
set<int> aux;
for (int i = 1; i <= 6; ++i) {
if (i != W[0]) aux.insert(i);
}
for (int i = 1; i < 4; ++i) {
vector<int> v;
for (int j: aux) v.push_back(j);
if (memo[v[0]][v[1]][v[2]] == -1) memo[v[0]][v[1]][v[2]] = getLightest(v[0], v[1], v[2]);
W[i] = memo[v[0]][v[1]][v[2]];
if ((int)aux.size() == 5) {
if (memo[W[i]][v[3]][v[4]] == -1) memo[W[i]][v[3]][v[4]] = getLightest(W[i], v[3], v[4]);
W[i] = memo[W[i]][v[3]][v[4]];
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |