Submission #782991

#TimeUsernameProblemLanguageResultExecution timeMemory
782991Rafi22Monster Game (JOI21_monster)C++17
0 / 100
178 ms284 KiB
#include <bits/stdc++.h> #include "monster.h" using namespace std; #define endl '\n' #define st first #define nd second #define pb push_back #define sz(x) (int)(x).size() #define all(x) (x).begin(), (x).end() #define ll long long ll mod=1000000007; int inf=1000000007; ll infl=1000000000000000007; /* const int N=1007; int p[N]; bool Query(int a, int b) { if(abs(p[a]-p[b])==1) return p[a]<p[b]; else return p[a]>p[b]; }*/ vector<int>Solve(int n) { vector<int>V(n); for(int i=0;i<n;i++) V[i]=i; stable_sort(all(V),Query); reverse(all(V)); /* for(int b=0;b<4;b++) { if(b+3<n&&Query(V[b],V[b+2])&&Query(V[b+1],V[b+3])) { int l=b+4; for(int j=b+2;j+2<n;j++) if(!Query(V[j],V[j+2])) l++; reverse(V.begin()+b,V.begin()+l); } }*/ int A=-1,B=-1; for(int i=0;i<n;i++) { int c=0; for(int j=0;j<n;j++) if(i!=j) c+=Query(V[i],V[j]); if(c==1) { if(A==-1) A=i; else B=i; } } if(Query(V[A],V[B])) reverse(V.begin(),V.begin()+A+1); else reverse(V.begin(),V.begin()+B+1); for(int i=1;i<n;i++) { for(int j=i;j<n;j++) { if(Query(V[i-1],V[j])) { reverse(V.begin()+i,V.begin()+j+1); break; } } } vector<int>ans(n,0); for(int i=0;i<n;i++) ans[V[i]]=i; return ans; } /* int main() { int n; cin>>n; for(int i=0;i<n;i++) cin>>p[i]; vector<int>V=Solve(n); for(auto x:V) cout<<x<<" "; cout<<endl; return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...