Submission #583564

#TimeUsernameProblemLanguageResultExecution timeMemory
583564benson1029Dancing Elephants (IOI11_elephants)C++14
0 / 100
1 ms340 KiB
#include "elephants.h" #include<bits/stdc++.h> using namespace std; int n; int l; pair<int,int> tmp[150005]; int x[150005]; int pos[150005]; void init(int N, int L, int X[]) { n = N; l = L; for(int i=0; i<n; i++) { tmp[i] = make_pair(X[i], i); } sort(tmp, tmp+n); for(int i=0; i<n; i++) { x[i] = tmp[i].first; pos[tmp[i].second] = i; } } int update(int i, int y) { int ptr = pos[i]; x[ptr] = y; while(ptr > 0 && x[ptr] < x[ptr-1]) { swap(pos[x[ptr]], pos[x[ptr-1]]); swap(x[ptr], x[ptr-1]); --ptr; } while(ptr < n-1 && x[ptr] > x[ptr+1]) { swap(pos[x[ptr]], pos[x[ptr+1]]); swap(x[ptr], x[ptr+1]); ++ptr; } int past = -1e9; int ans = 0; for(int i=0; i<n; i++) { if(i==0 || past+l < x[i]) { ans++; past = x[i]; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...