Submission #448603

#TimeUsernameProblemLanguageResultExecution timeMemory
448603dxz05Dancing Elephants (IOI11_elephants)C++17
26 / 100
9060 ms1488 KiB
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O2,O3") #pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt") #include "elephants.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 2e5 + 3e2; int N, L; int X[MAXN], A[MAXN]; void init(int _N, int _L, int _X[]){ N = _N; L = _L; for (int i = 0; i < N; i++) X[i] = _X[i]; for (int i = 0; i < N; i++) A[i] = X[i]; sort(A, A + N); } int lastans = -1; int update(int pos, int val){ if (X[pos] == val && lastans != -1) return lastans; int ind = find(A, A + N, X[pos]) - A; A[ind] = val; if (X[pos] < val) { while (ind < N - 1 && A[ind] > A[ind + 1]) { swap(A[ind], A[ind + 1]); ind++; } } else { while (ind > 0 && A[ind] < A[ind - 1]) { swap(A[ind], A[ind - 1]); ind--; } } X[pos] = val; //for (int i = 0; i < N; i++) cerr << X[i] << ' '; cerr << endl; //for (int i = 0; i < N; i++) cerr << A[i] << ' '; cerr << endl << endl; int ans = 1, last = A[0]; for (int i = 0; i < N; i++){ if (A[i] - last > L){ ans++; last = A[i]; } } lastans = ans; 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...