Submission #1312784

#TimeUsernameProblemLanguageResultExecution timeMemory
1312784activedeltorreScales (IOI15_scales)C++20
71.43 / 100
1 ms332 KiB
#include "scales.h"
#include <iostream>
using namespace std;

void init(int T)
{
    /* ... */
}
void orderCoins()
{
    int rez[10];
    int a=1,b=2,c=3,d=4,e=5,f=6,uses1,uses2,uses3,uses4,a2,b2,c2,d2;
    int min1=getLightest(a,b,c);
    if(a!=min1)
    {
        uses1=a;
        if(b!=min1)
        {
            uses2=b;
        }
        else
        {
            uses2=c;
        }
    }
    else
    {
        uses1=b;
        uses2=c;
    }
    int max1=getHeaviest(d,e,f);
    if(d!=max1)
    {
        uses3=d;
        if(e!=max1)
        {
            uses4=e;
        }
        else
        {
            uses4=f;
        }
    }
    else
    {
        uses3=e;
        uses4=f;
    }
    int realmax=getHeaviest(max1,uses1,uses2);
    if(realmax==max1)
    {
        rez[6]=max1;
        a2=uses1;
        b2=uses2;
    }
    if(realmax==uses1)
    {
        rez[6]=uses1;
        a2=max1;
        b2=uses2;
    }
    if(realmax==uses2)
    {
        rez[6]=uses2;
        a2=max1;
        b2=uses1;
    }
    int realmin=getLightest(min1,uses3,uses4);
    if(realmin==min1)
    {
        rez[1]=min1;
        c2=uses3;
        d2=uses4;
    }
    if(realmin==uses3)
    {
        rez[1]=uses3;
        c2=min1;
        d2=uses4;
    }
    if(realmin==uses4)
    {
        rez[1]=uses4;
        c2=min1;
        d2=uses3;
    }
    int canmax=getHeaviest(b2,c2,d2);
    if(canmax==b2)
    {
        swap(b2,d2);
    }
    if(canmax==c2)
    {
        swap(c2,d2);
    }
    int med=getMedian(a2,c2,d2);
    if(med==c2)
    {
        int medloc=getMedian(a2,b2,c2);
        if(medloc==a2)
        {
            rez[2]=b2;
            rez[3]=a2;
            rez[4]=c2;
        }
        else if(medloc==b2)
        {
            rez[2]=a2;
            rez[3]=b2;
            rez[4]=c2;
        }
        else
        {
            rez[2]=a2;
            rez[3]=c2;
            rez[4]=b2;
        }
    }
    else
    {
        if(med==d2)
        {
            swap(d2,a2);
        }
        int medloc=getMedian(a2,b2,c2);
        if(medloc==a2)
        {
            rez[2]=c2;
            rez[3]=a2;
            rez[4]=b2;
        }
        else if(medloc==b2)
        {
            rez[2]=c2;
            rez[3]=b2;
            rez[4]=a2;
        }
        else
        {
            rez[2]=b2;
            rez[3]=c2;
            rez[4]=a2;
        }
    }
    rez[5]=d2;
    int w[6];
    for(int i=1;i<=6;i++)
    {
        w[i-1]=rez[i];
    }
    answer(w);
}
#Verdict Execution timeMemoryGrader output
Fetching results...