제출 #1345400

#제출 시각아이디문제언어결과실행 시간메모리
1345400enzy저울 (IOI15_scales)C++20
0 / 100
0 ms344 KiB
#include "scales.h"
#include<bits/stdc++.h>
using namespace std;

void init(int T){
}

void orderCoins(){
    vector<int>freq(7,0);
    int a, b, c;
    int d, e, f;
    a=getLightest(1,2,3);
    c=getHeaviest(1,2,3);
    freq[a]++; freq[c]++;
    for(int i=1;i<=3;i++) if(!freq[i]) b=i;

    d=getLightest(4,5,6);
    f=getHeaviest(4,5,6);
    freq[d]++; freq[f]++;
    for(int i=4;i<=6;i++) if(!freq[i]) e=i;

    int m=getMedian(a,b,e);
    if(m==e){
        // (a,d) e b (c,f)
        int resp[6];
        resp[2]=e; resp[3]=b;
        if(getHeaviest(b,c,f)==c) resp[5]=c, resp[4]=f;
        else resp[4]=c, resp[5]=f;
        if(getLightest(a,d,e)==a) resp[0]=a, resp[1]=d;
        else resp[1]=a, resp[0]=d;
        answer(resp);
        return;
    }
    if(m==b){
        // (a,d) b e (c,f)
        int resp[6];
        resp[2]=b; resp[3]=e;
        if(getHeaviest(b,c,f)==c) resp[5]=c, resp[4]=f;
        else resp[4]=c, resp[5]=f;
        if(getLightest(a,d,e)==a) resp[0]=a, resp[1]=d;
        else resp[1]=a, resp[0]=d;
        answer(resp);
        return;
    }
    if(m==a){
        // d e (a,b,c,f)
        int resp[6];
        resp[0]=d; resp[1]=e;
        int at=getMedian(a,b,f);
        if(at==b){
            resp[2]=a; resp[3]=b;
            if(getHeaviest(a,c,f)==c) resp[5]=c, resp[4]=f;
            else resp[4]=c, resp[5]=f; 
            answer(resp);
            return;
        }
        if(at==a){
            resp[2]=f; resp[3]=a; resp[4]=b; resp[5]=c;
            answer(resp);
            return;
        }
        if(at==f){
            resp[2]=a; resp[3]=f; resp[4]=b; resp[5]=c;
            answer(resp);
            return;
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...