Submission #149448

#TimeUsernameProblemLanguageResultExecution timeMemory
149448mit한의대지망생 (#200)Wine Tasting (FXCUP4_wine)C++17
28 / 100
11 ms932 KiB
#include "bartender.h"
using namespace std;

vector<int> BlendWines(int K, vector<int> R){
	int N = R.size();
	vector<int> A(N);
	for(int i = 0; i < N; i++) A[i] = (R[i]-1) % 16 + 1;
	return A;
}
#include "taster.h"
using namespace std;

vector<int> g[31];
void get_piv(int v){
	if(Compare(g[1][0], g[v][0]) == -1){
		if(Compare(g[1][0], g[v][1]) == -1){
			if(Compare(g[1][1], g[v][0]) == -1) swap(g[v][0], g[v][1]);
		}else{
			swap(g[1][0], g[1][1]);
			swap(g[v][0], g[v][1]);
		}
	}else{
		swap(g[1][0], g[1][1]);
	}
	for(int i = 2; i < v; i++){
		if(Compare(g[i][1], g[1][1]) == -1){
			swap(g[i][0], g[i][1]);
		}
	}
}
vector<int> SortWines(int K, vector<int> A) {
	int N = A.size();
	for(int i = 0; i < N; i++) g[A[i]].push_back(i);
	int v = 0;
	for(int i = 14; i >= 1; i--){
		if(g[i].size() == 2){
			v = i;
			break;
		}
	}
	vector<int> R(N);
	if(v > 1) get_piv(v);
	else if(v == 1){
		if(Compare(g[1][0], g[1][1]) == -1) swap(g[1][0], g[1][1]);
	}
	else{
		return A;
	}
	for(int i = 1; i <= 16; i++){
		for(int j = 0; j < g[i].size(); j++){
			int k = g[i][j];
			R[k] = j * 16 + i;
		}
	}
	return R;
}

Compilation message (stderr)

taster.cpp: In function 'std::vector<int> SortWines(int, std::vector<int>)':
taster.cpp:41:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j = 0; j < g[i].size(); j++){
                  ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...