Submission #1242115

#TimeUsernameProblemLanguageResultExecution timeMemory
1242115kussiaScales (IOI15_scales)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
using ll = long long;

//int arr[10] = {0, 5, 4, 1, 2, 6, 3};

void init(int t) {

}
/*
int getLightest(int a, int b, int c) {
    int mn = min({arr[a], arr[b], arr[c]});
    if(mn == arr[a]) return a;
    else if(mn == arr[b]) return b;
    else return c;
}

int getHeaviest(int a, int b, int c) {
    int mn = max({arr[a], arr[b], arr[c]});
    if(mn == arr[a]) return a;
    else if(mn == arr[b]) return b;
    else return c;
}

void answer(vector<int> arr) {
    for(auto it : arr) {
        cout << it << ' ';
    }
}*/

void orderCoins() {
    vector<int> a = {1, 2, 3}, b = {4, 5, 6};
    int mn = getLightest(1, 2, 3);
    int mn1 = getLightest(4, 5, 6);
    cout << mn << ' ' << mn1 << '\n';
    for(int i = 0; i < 3; i++) {
        if(a[i] == mn) a[i] = 1;
    }
    a[0] = mn;
    for(int i = 0; i < 3; i++) {
        if(b[i] == mn1) b[i] = 4;
    }
    b[0] = mn1;
    vector<int> ans = {getLightest(mn, mn1, a[1])};
    if(ans[0] == mn) {
        int mn2 = getLightest(mn1, a[1], a[2]);
        ans.push_back(mn2);
    }
    else {
        int mn2 = getLightest(mn, b[1], b[2]);
        ans.push_back(mn2);
    }
    for(auto it : ans) {
        if(it <= 3) a.erase(find(a.begin(), a.end(), it));
        else b.erase(find(b.begin(), b.end(), it));
    }
    if(a.size() == 1) {
        mn = getLightest(a[0], b[0], b[1]);
        ans.push_back(mn);
        if(mn <= 3) a.erase(find(a.begin(), a.end(), mn));
        else b.erase(find(b.begin(), b.end(), mn));
    }
    else {
        mn = getLightest(a[0], a[1], b[0]);
        mn = getLightest(b[0], b[1], a[1]);
        ans.push_back(mn);
        if(mn <= 3) a.erase(find(a.begin(), a.end(), mn));
        else b.erase(find(b.begin(), b.end(), mn));
    }
    vector<int> c;
    for(auto it : a) c.push_back(it);
    for(auto it : b) c.push_back(it);
    if(b.size() == 3) {
        int mx = getHeaviest(b[0], b[1], b[2]);
        ans.push_back(b[0]);
        b.erase(b.begin());
        b.erase(find(b.begin(), b.end(), mx)); ans.push_back(b[0]);
        ans.push_back(mx);
    }
    else {
        int mn_now = getLightest(c[0], c[1], c[2]);
        int mx_now = getHeaviest(c[0], c[1], c[2]);
        ans.push_back(mn_now);
        c.erase(find(c.begin(), c.end(), mn_now));
        c.erase(find(c.begin(), c.end(), mx_now));
        ans.push_back(c[0]);
        ans.push_back(mx_now);
    }
    int ans1[] = {ans[0], ans[1], ans[2], ans[3], ans[4], ans[5]};
    answer(ans1);
}
#Verdict Execution timeMemoryGrader output
Fetching results...