Submission #1221854

#TimeUsernameProblemLanguageResultExecution timeMemory
1221854adam17Monster Game (JOI21_monster)C++20
0 / 100
60 ms508 KiB
#include "monster.h"
#include <algorithm>
using namespace std;
struct monstrum{
  int v;
  int i;
};
bool compare(monstrum a, monstrum b) {
  return a.v < b.v;
}
namespace {

// bool example_variable;

}  // namespace

vector<int> Solve(int N) {
  vector<int> T(N);

  // example_variable = Query(0, 1);
  vector<vector<int>> R(N);
  vector<monstrum> V(N);
  for (int i = 0; i < N; i++) {
    R[i].resize(i);
    V[i] = monstrum{0, i};
    for (int j = 0; j < i; j++) {
      R[i][j] = Query(i, j);
      if (R[i][j]) {
        V[i].v++;
      } else {
        V[j].v++;
      }
    }
  }

  sort(V.begin(), V.end(), compare);

  if (R[V[1].i][V[0].i]) {
    V[0].i ^= V[1].i;
    V[1].i ^= V[0].i;
    V[0].i ^= V[1].i;
  }

  if (R[V[N - 1].i][V[N - 2].i]) {
    V[N - 1].i ^= V[N - 2].i;
    V[N - 2].i ^= V[N - 1].i;
    V[N - 1].i ^= V[N - 2].i;
  }

  for (int i = 0; i < N; i++) {
    T[V[i].i] = i;
  }

  // for (int i = 0; i < N; i++) T[i] = (N - 1) - i;

  return T;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...