Submission #661891

#TimeUsernameProblemLanguageResultExecution timeMemory
661891victor_gaoMonster Game (JOI21_monster)C++17
10 / 100
191 ms336 KiB
//#pragma GCC optimize("Ofast,unroll-loops,O3")
//#pragma GCC optimize("avx,avx2,sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,fma,tune=native")
#include "monster.h"
#include<bits/stdc++.h>
#define pii pair<int,int>
#define x first
#define y second
using namespace std;

vector<int> Solve(int N){
    map<pii,vector<int> >mp;
    vector<int>ans;
    int cnt[205]={0};
    ans.resize(N,0);
    for (int i=0;i<N;i++){
        for (int j=i+1;j<N;j++){
            if (Query(i,j)) cnt[i]++;
            else cnt[j]++;
        }
    }
    for (int i=0;i<N;i++)
        mp[{cnt[i],N-1-cnt[i]}].push_back(i);
    for (auto i:mp){
        if (i.y.size()==1){
          ans[i.y[0]]=i.x.x;
        }
        else {
            int a=i.y[0],b=i.y[1];
            if (Query(a,b)){
                if (i.x.x<N/2){
                    ans[a]=i.x.x-1;
                    ans[b]=i.x.x;
                }
                else {
                  ans[a]=i.x.x;
                  ans[b]=i.x.x+1;
                }
            } 
            else {
                if (i.x.x<N/2){
                    ans[b]=i.x.x-1;
                    ans[a]=i.x.x;
                }
                else {
                  ans[b]=i.x.x;
                  ans[a]=i.x.x+1;
                }
            }
        } 
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...