Submission #1015511

#TimeUsernameProblemLanguageResultExecution timeMemory
1015511amine_arouaScales (IOI15_scales)C++17
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
#include "scales.h"
#include "graderlib.cpp"

using namespace std;
void init(int T) {

}
void sort(vector<int> &a)
{
    vector<int> nw = {-1  , -1 , -1};
    nw[0] = getLightest(a[0] , a[1] , a[2]);
    nw[2] = getHeaviest(a[0] , a[1] , a[2]);
    for(auto x : a)
    {
        if(std::find(nw.begin(), nw.end(),x) == nw.end())
        {
            nw[1] = x;
        }
    }
    a = nw;
}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
void orderCoins() {
    /* ... */
    vector<int> a ,b;
    vector<int> all ;
    for(int i = 1 ; i <= 6 ; i++)
        all.push_back(i);
    shuffle(all.begin() , all.end() , rng);
    for(int i = 0 ; i < 6 ; i++)
    {
        if(i < 3)
            a.push_back(all[i]);
        else
            b.push_back(all[i]);
    }
//    a = {1 , 3 , 5};
//    b = {6 , 2 , 4};
    sort(a);
    int mb = getLightest(b[0] , b[1] , b[2]);
    for(int i = 0 ; i < 3 ; i++)
    {
        if(b[i] == mb)
        {
            swap(b[i] , b[0]);
            break;
        }
    }
    vector<int> d;
    int c[6];
    vector<int> nxts;
    for(int j = 0 ; j < 3 ; j++)
    {
        int  nxt = getNextLightest(b[0] , b[1] , b[2] , a[j]);
        nxts.push_back(nxt);
//        d.insert(find(d.begin() , d.end() , nxt) , a[j]);
    }
    int last = -1;
    for(int j = 2 ; j >= 0 ; j--)
    {
        if(nxts[j] != b[0])
        {
            last = j;
            break;
        }
    }
    if(last == -1)
    {
        int mid = 1;
        int nb = getHeaviest(a[mid] , b[2] , b[1]);
        if(nb == a[mid])
        {
            int nb2 = getHeaviest(a[mid - 1] , b[2] , b[1]);
            if(nb2 == a[mid - 1])
            {
                mid = 0;
                if(getHeaviest(b[0]  , b[1]  , b[2]) == b[1])
                    swap(b[1] , b[2]);
            }
            else
            {
                if(b[1] == nb2)
                    swap(b[1] , b[2]);
            }
        }
        else
        {
            if(nb == b[1])
                swap(b[1] , b[2]);
            if(getHeaviest(a[2] , b[2] , b[1]) == a[2])
                mid = 2;
            else
                mid = 3;
        }
        d = b;
        for(int i = 0 ; i < mid ; i++)
            d.insert(find(d.begin() , d.end() , nxts[i]) , a[i]);
        for(int i = mid ; i < 3 ; i++)
            d.push_back(a[i]);
    }
    else
    {
        if(getHeaviest(b[0]  , b[1]  , b[2]) == b[1])
            swap(b[1] , b[2]);
        d = b;
        for(int i = 0 ; i <= last ; i++)
        {
            d.insert(find(d.begin() , d.end() , nxts[i]) , a[i]);
        }
        for(int i = last + 1; i < 3 ; i++)
            d.push_back(a[i]);
    }

    for(int i = 0 ; i < 6 ; i++)
        c[i] = d[i];
//    vector<int> v = {3 , 4 , 6 , 2 , 1 , 5};
//    if(d != v)
//    {
//        cout<<b[0]<<" "<<b[1]<<" "<<b[2]<<'\n';
//        return ;
//    }
    answer(c);
}

int main() {

    int T, i;

    T = _getNumberOfTests();
    init(T);
    for (i = 1; i <= T; i++) {
        _initNewTest();
        orderCoins();
    }
    return 0;
}

Compilation message (stderr)

scales.cpp:3:10: fatal error: graderlib.cpp: No such file or directory
    3 | #include "graderlib.cpp"
      |          ^~~~~~~~~~~~~~~
compilation terminated.