제출 #356711

#제출 시각아이디문제언어결과실행 시간메모리
356711BlancaHMScales (IOI15_scales)C++14
0 / 100
1098 ms512 KiB
#include "scales.h" #include <algorithm> #include <vector> #include <iostream> using namespace std; void init (int T) { // } void permutaciones(vector<int> & permutacion, vector<bool> & seleccionado, int N, vector<vector<int>> & perm) { if ((int) permutacion.size() == N) { // ya están todos los números en la permutación perm.push_back(permutacion); return; } for (int i = 1; i <= N; i++) { if (!seleccionado[i-1]) { seleccionado[i-1] = true; permutacion.push_back(i); permutaciones(permutacion, seleccionado, N, perm); permutacion.pop_back(); seleccionado[i-1] = false; } } } bool valida(vector<int> & secuencia, vector<int> & permutacion) { int i = 0, j = 0; while (i < (int) secuencia.size() && j < 6) { if (permutacion[j] == secuencia[i]) i++; j++; } return i == (int) secuencia.size(); } void reducir(vector<int> secuencia, vector<vector<int>> & perm) { vector<vector<int>> solucion = {}; for (int k = 0; k < (int) perm.size(); k++) { if (valida(secuencia, perm[k])) solucion.push_back(perm[k]); } perm = solucion; } void orderCoins() { vector<vector<int>> perm; // guardamos aquí las permutaciones de los números 1 a 6 vector<int> p = {}; vector<bool> sel = vector<bool>(6, false); permutaciones(p, sel, 6, perm); int respuesta, A, B, C; while((int) perm.size() > 1) { A = perm[0][0]; B = perm[0][1]; C = perm[0][2]; respuesta = getHeaviest(A, B, C); if (respuesta == A) { reducir({B, A}, perm); reducir({C, A}, perm); } else if (respuesta == B) { reducir({A, B}, perm); reducir({C, B}, perm); } else { reducir({A, C}, perm); reducir({B, C}, perm); } } p = perm[0]; int solucion[6] = {p[0], p[1], p[2], p[3], p[4], p[5]}; answer(solucion); return; }

컴파일 시 표준 에러 (stderr) 메시지

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