제출 #1237799

#제출 시각아이디문제언어결과실행 시간메모리
1237799guanex마상시합 토너먼트 (IOI12_tournament)C++20
17 / 100
1097 ms584 KiB
#include<bits/stdc++.h> using namespace std; int check(int j, int rank, vector<int> &knights, vector<pair<int, int>> &query){ vector<int> x; for(int i = 0; i < j; ++i){ x.push_back(knights[i]); } x.push_back(rank); for(int i = j; i < (int)knights.size(); ++i){ x.push_back(knights[i]); } int ans = 0; for(auto e:query){ int mx = -1; for(int i = e.first; i <= e.second; ++i){ mx = max(mx, x[i]); } if(mx == rank){ ans++; } for(int i = e.second; i >= e.first; --i){ if(x[i] == mx)continue; x.erase(x.begin() + i); } /*cout << j << " " << e.first << " " << e.second << endl; for(auto e:x){ cout << e << " "; } cout << endl;*/ } return ans; } int GetBestPosition(int N, int C, int R, int *K, int *S, int *E) { vector<pair<int, int>> x; int lk = R; vector<int> knights; for(int i = 0; i < N-1; ++i){ knights.push_back(K[i]); } for(int i = 0; i < C; ++i){ x.push_back({S[i], E[i]}); } int ans = -1; int pos = 0; for(int i = 0; i < N-1; ++i){ int an = check(i, lk, knights, x); if(an > ans){ ans = an; pos = i; } } return pos; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...