Submission #415680

#TimeUsernameProblemLanguageResultExecution timeMemory
415680victoriadScales (IOI15_scales)C++14
0 / 100
3 ms428 KiB
#include "scales.h"
#include <vector>
using namespace std;
void init(int T) {
    /* ... */
}

void orderCoins() {
    int ANS[6];
    int g1[3];
    int g2[4];
    int g3[5];
    int l=getLightest(1,2,3);
    int m=getMedian(1,2,3);
    vector<bool>co(3,false);
    co[l-1]=true;
    co[m-1]=true;
    g1[0]=l;
    g1[2]=m;
    for(int i=0;i<3;i++)
    if(!co[i])g1[2]=i+1;

    l=getNextLightest(1,2,3,4);
    if(l!=g1[0]){
        g2[0]=g1[0];
        if(l==g1[1]){
            g2[1]=4;
            g2[2]=g1[1];
            g2[3]=g1[2];
        }
        else{
            g2[1]=g1[1];
            g2[2]=4;
            g2[3]=g1[2];
        }
    }
    else{
        int x=getLightest(g1[0],g1[1],4);
        if(x==g1[0]){
            for(int i=0;i<3;i++)g2[i]=g1[i];
            g2[3]=4;
        }
        else{
            g2[0]=4;
            for(int i=0;i<3;i++)g2[i+1]=g1[i];
        }
    }

    l=getNextLightest(g2[0],g2[1],g2[2],5);
    if(l!=g2[0]){
        g3[0]=g2[0];
        if(l==g2[1]){
            g3[1]=5;
            g3[2]=g2[1];
            g3[3]=g2[2];
            g3[4]=g2[3];
        }
        else{
            g3[1]=g2[1];
            g3[2]=5;
            g3[3]=g2[2];
            g3[4]=g2[3];
        }
    }
    else{
        int x=getLightest(5,g2[0],g2[1]);
        if(x==5){
            g3[0]=5;
            for(int i=0;i<4;i++)g3[i+1]=g2[i];
        }
        else{
            int y=getHeaviest(g2[3],5,g2[0]);
            if(y==5){
                for(int i=0;i<4;i++)g3[i]=g2[i];
                g3[4]=5;
            }
            else{
                for(int i=0;i<3;i++)g3[i]=g2[i];
                g3[3]=5;
                g3[4]=g2[3];
            }
        }
    }

    l=getNextLightest(g3[0],g3[1],g3[2],6);
    if(l!=g3[0]){
        ANS[0]=g2[0];
        if(l==g2[1]){
            ANS[1]=5;
            ANS[2]=g3[1];
            ANS[3]=g3[2];
            ANS[4]=g3[3];
            ANS[5]=g3[4];
        }
        else{
            ANS[1]=g3[1];
            ANS[2]=5;
            ANS[3]=g3[2];
            ANS[4]=g3[3];
            ANS[5]=g3[4];
        }
    }
    else{
        int x=getLightest(5,g3[0],g3[1]);
        if(x==6){
            ANS[0]=6;
            for(int i=0;i<5;i++)ANS[i+1]=g3[i];
        }
        else{
            int y=getNextLightest(g3[2],g3[3],g3[4],6);
            if(y==g3[2]){
                for(int i=0;i<5;i++)ANS[i]=g3[i];
                ANS[5]=6;
            }
            else if(y==g3[3]){
                for(int i=0;i<3;i++)ANS[i]=g3[i];
                ANS[3]=6;
                ANS[4]=g3[3];
                ANS[5]=g3[4];
            }
            else{
               for(int i=0;i<4;i++)ANS[i]=g3[i]; 
               ANS[4]=6;
               ANS[5]=g3[4];
            }
        }

    }
    answer(ANS);
    
}

Compilation message (stderr)

scales.cpp: In function 'void init(int)':
scales.cpp:4:15: warning: unused parameter 'T' [-Wunused-parameter]
    4 | void init(int T) {
      |           ~~~~^
scales.cpp: In function 'void orderCoins()':
scales.cpp:26:9: warning: 'g1[1]' may be used uninitialized in this function [-Wmaybe-uninitialized]
   26 |         if(l==g1[1]){
      |         ^~
#Verdict Execution timeMemoryGrader output
Fetching results...