Submission #1270775

#TimeUsernameProblemLanguageResultExecution timeMemory
1270775vtnooScales (IOI15_scales)C++20
71.43 / 100
1 ms328 KiB
#include <bits/stdc++.h>
#include "scales.h"

using namespace std;

int tt;

void init(int T){
    tt=T;
}

vector<int> exclude(vector<int> a, vector<int> b){
    for(auto c:b){
        a.erase(find(a.begin(), a.end(), c));
    }
    return a;
}

void orderCoins(){
    int a=getLightest(1,2,3), b=getLightest(4,5,6), c=getLightest(a,b,a==3?2:a==2?1:3); // 3 queries
    vector<int> d;
    vector<bool> used(7,false);
    used[c]=true;
    if(c==1||c==2||c==3){
        d=exclude({1,2,3,b},{a});
    }else{
        d=exclude({4,5,6,a},{b});
    } 
    int e=getLightest(d[0], d[1], d[2]); // 1 querie
    used[e]=true;
    vector<int> f=exclude({1,2,3,4,5,6}, {c,e}); // me van a quedar 4 opciones A B C D
    int g=getLightest(f[0],f[1],f[2]);
    used[g]=true;
    vector<int> h=exclude(f,{g});
    int j=getHeaviest(h[0],h[1],h[2]);
    used[j]=true;
    vector<int> k=exclude(f, {j});
    int l=getMedian(k[0], k[1], k[2]);
    used[l]=true;
    int m;
    int n=g!=l?g:f[3];
    used[n]=true;
    for(int i=1;i<=6;i++)if(!used[i])m=i;
    int W[6]={c,e,n,l,m,j};
    answer(W);
}
#Verdict Execution timeMemoryGrader output
Fetching results...