Submission #1271093

#TimeUsernameProblemLanguageResultExecution timeMemory
1271093Faggi저울 (IOI15_scales)C++20
45.45 / 100
1 ms328 KiB
#include <bits/stdc++.h> #include "scales.h" #define ll long long #define sz(x) int(x.size()) #define forn(i, n) for (i = 0; i < n; i++) #define all(x) x.begin(), x.end() #define pb push_back #define mp make_pair #define fr first #define se second using namespace std; /* int getMedian(int A, int B, int C); int getHeaviest(int A, int B, int C); int getLightest(int A, int B, int C); int getNextLightest(int A, int B, int C, int D); void answer(int C[]);*/ void init(int T) { } void ord(vector<ll> &v) { vector<ll> ans; ans.pb(getLightest(v[0], v[1], v[2])); ans.pb(getMedian(v[0], v[1], v[2])); for (ll i = 0; i < sz(v); i++) if (v[i] != ans[0] && v[i] != ans[1]) ans.pb(v[i]); v = ans; } void ret(vector<ll> &v, vector<ll> &q) { ll i; int c[6]; for (i = 0; i < 3; i++) c[i] = v[i]; for (i = 0; i < 3; i++) c[i + 3] = q[i]; answer(c); } void orderCoins() { vector<ll> v, q; q = {1, 2, 3}; ll i, x, sig = 4, j, y, z, k; for (i = 0; i < 3; i++) { x = getLightest(q[0], q[1], q[2]); v.pb(x); for (j = 0; j < sz(q); j++) if (q[j] == x) q[j] = sig++; } x = getLightest(q[0], q[1], q[2]); y = getHeaviest(v[0], v[1], v[2]); for (i = 0; i < sz(q); i++) if (x != q[i]) z = q[i]; k = getLightest(x, y, z); if (k != y) { j = 0; for (i = 0; i < sz(v); i++) if (v[i] == y) j = i; for (i = 0; i < sz(q); i++) if (q[i] == x) { swap(q[i], v[j]); break; } ord(v); vector<ll> q2; q2.pb(q[i]); q2.pb(getMedian(q[0], q[1], q[2])); for (k = 0; k < sz(q); k++) if (q[k] != q2[0] && q[k] != q2[1]) q2.pb(q[k]); ret(v, q2); return; } vector<ll> q2; q2.pb(x); q2.pb(getMedian(q[0], q[1], q[2])); for (k = 0; k < sz(q); k++) if (q[k] != q2[0] && q[k] != q2[1]) q2.pb(q[k]); ord(v); ret(v, q2); return; }
#Verdict Execution timeMemoryGrader output
Fetching results...