제출 #864303

#제출 시각아이디문제언어결과실행 시간메모리
864303vjudge1Monster Game (JOI21_monster)C++17
10 / 100
106 ms1392 KiB
#include <bits/stdc++.h> #include "monster.h" using namespace std; /*vector<int> a; bool Query(int x, int y) { cout << "? " << x << " " << y << '\n'; bool win=false; if (a[x]-a[y]>1 || a[y]-a[x]==1) win=true; cout << win << '\n'; return win; }*/ vector<int> Solve(int n) { int wins[n]={0}; bool outcome[n][n]; vector<int> strength(n); for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) { outcome[i][j]=Query(i, j); if (outcome[i][j]==true) wins[i]=wins[i]+1; else wins[j]=wins[j]+1; } /*cout << "wins\n"; for (int i=0; i<n; i++) cout << wins[i] << " "; cout << '\n';*/ for (int i=0; i<n; i++) strength[i]=wins[i]; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) { if (wins[i]==n-2 && wins[j]==n-2) { strength[i]=n-1; strength[j]=n-2; if (outcome[i][j]==true) swap(strength[i], strength[j]); } if (wins[i]==1 && wins[j]==1) { strength[i]=1; strength[j]=0; if (outcome[i][j]==true) swap(strength[i], strength[j]); } } return strength; } /*int main() { a={3, 1, 4, 2, 0}; vector<int> t=Solve(5); for (auto x : t) cout << x << " "; return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...