Submission #128028

#TimeUsernameProblemLanguageResultExecution timeMemory
128028MoNsTeR_CuBeScales (IOI15_scales)C++17
38.46 / 100
2 ms504 KiB
#include "scales.h"
#include <bits/stdc++.h>

using namespace std;



void init(int T) {
}

void orderCoins() {
    int W[] = {1, 2, 3, 4, 5, 6};
    
    vector< int > left;
    vector< int > right;
    
    left.push_back(getLightest(W[0], W[1], W[2]));
    left.push_back(getMedian(W[0], W[1], W[2]));
    for(int i = 0; i < 3; i++){
		bool verif = false;
		for(int j = 0; j < 2; j++){
			if(left[j] == W[i]) verif = true;
		}
		if(!verif) left.push_back(W[i]);
	}
	
	right.push_back(getLightest(W[3], W[4], W[5]));
	right.push_back(getMedian(W[3], W[4], W[5]));
	
	for(int i = 3; i < 6; i++){
		bool verif = false;
		for(int j = 0; j < 2; j++){
			if(right[j] == W[i]) verif = true;
		}
		if(!verif) right.push_back(W[i]);
	}
    
    int rem = 6;
    
    vector< int > ans;
    
    while(rem > 3){
		if((int)left.size() >= 2){
			ans.push_back(getHeaviest(left.back(), left[left.size()-2], right.back()));
			if(ans.back() == right.back()) right.pop_back();
			if(ans.back() == left.back()) left.pop_back();
		}else{
			ans.push_back(getHeaviest(left.back(), right[right.size()-2], right.back()));
			if(ans.back() == right.back()) right.pop_back();
			if(ans.back() == left.back()) left.pop_back();
		}
		rem--;
	}
    
    vector< int > remaining;
    
    while(!left.empty()){
		remaining.push_back(left.back());
		left.pop_back();
	}
    while(!right.empty()){
		remaining.push_back(right.back());
		right.pop_back();
	}
	ans.push_back(getHeaviest(remaining[0], remaining[1], remaining[2]));
	ans.push_back(getMedian(remaining[0], remaining[1], remaining[2]));
	ans.push_back(getLightest(remaining[0], remaining[1], remaining[2]));
	
	reverse(ans.begin(), ans.end());
	
    for(int i = 0; i < 6; i++){
		W[i] = ans[i];
	}
    answer(W);
}

Compilation message (stderr)

scales.cpp: In function 'void init(int)':
scales.cpp:8:15: warning: unused parameter 'T' [-Wunused-parameter]
 void init(int T) {
               ^
#Verdict Execution timeMemoryGrader output
Fetching results...