제출 #1237810

#제출 시각아이디문제언어결과실행 시간메모리
1237810caacrugon마상시합 토너먼트 (IOI12_tournament)C++20
17 / 100
1093 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

int GetBestPosition(int N, int C, int R, int *K, int *S, int *E) {
  int ans=0,bestWins=-1;
  for(int i=0;i<N;i++){
    vector<int> ln(K,K+(N-1));
    ln.push_back(0);
    int tmp=R,tmp2=-1;
    for(int j=i;j<ln.size();j++){
      if(tmp2==-1){
        tmp2=ln[j];
        ln[j]=tmp;
      }else{
        tmp=ln[j];
        ln[j]=tmp2;
        tmp2=-1;
      }
    }
    int wins=0;
    for(int j=0;j<C;j++){
      int pMax=wins+(C-(j+1));
      if (pMax<=bestWins)break;
      int mx=0,ind=S[j];
      for(int k=S[j];k<=E[j];k++){
        int ntmp=mx;
        mx=max(mx,ln[k]);
        ind=mx>ntmp?k:ind;
      }
      if(ln[ind]==R)wins++;
      ln.erase(ln.begin()+ind+1,ln.begin()+E[j]+1);
      ln.erase(ln.begin()+S[j],ln.begin()+ind);
    }
    if(wins>bestWins){
      bestWins=wins;
      ans=i;
    }
  }
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...