제출 #912998

#제출 시각아이디문제언어결과실행 시간메모리
912998Muhammad_Aneeq마상시합 토너먼트 (IOI12_tournament)C++17
17 / 100
1029 ms3172 KiB
#include <iostream> #include <vector> using namespace std; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> int GetBestPosition(int N, int C, int R, int K[], int S[], int E[]) { int ans=0,pos=0; ordered_set s; for (int i=0;i<N;i++) { s={}; for (int j=0;j<N;j++) s.insert(j); int z=0; for (int j=0;j<C;j++) { int ma=0; bool w=0; for (int k=S[j];k<=E[j];k++) { int z=*s.find_by_order(k); int f=0; if (z==i) { w=1; f=R; } else f=K[z-(z>i)]; ma=max(ma,f); } for (int k=E[j];k>=S[j];k--) { auto z=s.find_by_order(k); int f=0; if (*z==i) f=R; else f=K[*z-(*z>i)]; if (ma==f) continue; s.erase(z); } if (w) { if (ma==R) z++; else break; } } if (z>ans) { ans=z; pos=i; } } return pos; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...