Submission #619938

#TimeUsernameProblemLanguageResultExecution timeMemory
619938yanndevScales (IOI15_scales)C++17
16.42 / 100
1 ms212 KiB
#include "scales.h" #include <bits/stdc++.h> using namespace std; mt19937 rng(4589); int mx = -1; map<pair<int, int>, bool> comp {}; void init(int T) { /* ... */ } bool comp1(int a, int b) { if (a == b) return false; if (comp.find({a, b}) != comp.end()) return comp[{a, b}]; /*int c = a; while (c == a || c == b) c = (rng() % 6) + 1;*/ int c = -1; for (int i = 1; i <= 6; i++) if (i != a && i != b) c = i; vector<int> ls {a, b, c}; int small = getLightest(a, b, c); for (auto& x: ls) { if (x != small) { comp[{small, x}] = true; comp[{x, small}] = false; } } if (a == small) return true; if (b == small) return false; int big = getHeaviest(a, b, c); for (auto& x: ls) { if (x != big) { comp[{x, big}] = true; comp[{big, x}] = false; } } if (a == big) return false; if (b == big) return true; } bool comp2(int a, int b) { if (a == b) return false; if (comp.find({a, b}) != comp.end()) return comp[{a, b}]; int small = getLightest(a, b, mx); comp[{a, b}] = small == a; comp[{b, a}] = small != a; return small == a; } void orderCoins() { /* ... */ int W[] = {1, 2, 3, 4, 5, 6}; //shuffle(W, W + 6, rng); comp.clear(); //cout << "mx is " << mx << '\n'; //stable_sort(W, W + 6, comp2); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5 - i; j++) { if (!comp1(W[j], W[j + 1])) swap(W[j], W[j + 1]); } } answer(W); }

Compilation message (stderr)

scales.cpp: In function 'void init(int)':
scales.cpp:9:15: warning: unused parameter 'T' [-Wunused-parameter]
    9 | void init(int T) {
      |           ~~~~^
scales.cpp: In function 'bool comp1(int, int)':
scales.cpp:27:28: warning: control reaches end of non-void function [-Wreturn-type]
   27 |     vector<int> ls {a, b, c};
      |                            ^
#Verdict Execution timeMemoryGrader output
Fetching results...