제출 #1221898

#제출 시각아이디문제언어결과실행 시간메모리
1221898trideserMonster Game (JOI21_monster)C++20
0 / 100
59 ms1532 KiB
#include "monster.h" #include <bits/stdc++.h> using namespace std; unordered_map<long long int, int> queries; bool Q(int a, int b) { //return Query(a, b); int qn = (((long long)a) * 100000) + b; if(queries.find(qn) == queries.end()) { queries[qn] = Query(a, b); } return queries[qn]; } vector<int> Solve(int N) { vector<int> monsters(N); vector<int> w1; vector<int> l1; for(int i = 0; i < N; i++) { int wins = 0; for(int j = 0; j < N; j++) { if(i != j) { if(Q(i, j)) wins++; } } //cout << wins << " "; if(wins == 1) w1.push_back(i); else if(wins == N - 2) l1.push_back(i); else monsters[wins] = i; } if(N == 4) { } if(Q(w1[0], monsters[2])) { monsters[1] = w1[0]; monsters[0] = w1[1]; } else { monsters[0] = w1[0]; monsters[1] = w1[1]; } if(Q(l1[0], monsters[N - 3])) { monsters[N - 1] = l1[0]; monsters[N - 2] = l1[1]; } else { monsters[N - 2] = l1[0]; monsters[N - 1] = l1[1]; } vector<int> ret(N); for(int i = 0; i < monsters.size(); i++) { //cout << monsters[i]; ret[monsters[i]] = i; } return ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...