Submission #583572

#TimeUsernameProblemLanguageResultExecution timeMemory
583572benson1029Dancing Elephants (IOI11_elephants)C++14
26 / 100
9053 ms1692 KiB
#include "elephants.h" #include<bits/stdc++.h> using namespace std; int n; int l; pair<int,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++) { x[i] = make_pair(X[i], i); } sort(x, x+n); for(int i=0; i<n; i++) { pos[x[i].second] = i; } } int update(int i, int y) { int ptr = pos[i]; x[ptr].first = y; while(ptr > 0 && x[ptr] < x[ptr-1]) { pos[x[ptr].second] = ptr-1; pos[x[ptr-1].second] = ptr; swap(x[ptr], x[ptr-1]); --ptr; } while(ptr < n-1 && x[ptr] > x[ptr+1]) { pos[x[ptr].second] = ptr+1; pos[x[ptr+1].second] = ptr; 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].first) { ans++; past = x[i].first; } } 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...