제출 #1237821

#제출 시각아이디문제언어결과실행 시간메모리
1237821caacrugonJousting tournament (IOI12_tournament)C++20
0 / 100
1 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; vector<int> pMax(N+5,0),tmp(N+5,0),tmp2(N+5,0); vector<pair<int,int>> ln; int wins=0; for(int i=0;i<N-1;i++){ if(K[i]>R){ tmp[i+1]++; tmp2[i]++; wins++; } } for(int i=0;i<N;i++){ tmp[i+1]+=tmp[i]; tmp2[N-1-i]+=tmp2[N-i]; ln.push_back({i,i}); } for(int i=0;i<C;i++){ int l=ln[S[i]].first; int r=ln[E[i]].second; ln.erase(ln.begin()+S[i],ln.begin()+E[i]+1); ln.insert(ln.begin()+S[i],{l,r}); if(tmp[l]+tmp2[r]==wins){ pMax[l]++; pMax[r+1]--; } } int sum=pMax[0]; for(int i=1;i<=N;i++){ pMax[i]+=pMax[i-1]; if(pMax[i]>bestWins){ bestWins=pMax[i]; ans=i; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...