This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int arr[50001],n,l;
unsigned short ind[50001],ind2[50001];
void init(int N,int L,int X[]){
l = L;
n = N;
for(int i =0 ;i<n;i++){
arr[i] = X[i];
ind[i] = i;
ind2[i] = i;
}
}
int update(int i, int y){
i = ind[i];
arr[i] = y;
if(arr[i]>arr[i-1]){
while(i<n-1&&arr[i+1]<arr[i]){
swap(arr[i],arr[i+1]);
swap(ind[ind2[i]],ind[ind2[i+1]]);
swap(ind2[i],ind2[i+1]);
i++;
}
}else{
while(i>0&&arr[i-1]>arr[i]){
swap(arr[i],arr[i-1]);
swap(ind[ind2[i]],ind[ind2[i-1]]);
swap(ind2[i],ind2[i-1]);
i--;
}
}
int ans = 1 , la = arr[0];
for(int i = 1;i<n;i++){
if(arr[i]>la+l){
la = arr[i];ans++;
}
}
return ans;
}/*
int main(){
int N = 4 , L = 10;
int X[] ={10,15,17,20};
init(N,L,X);
cout<<update(2,16)<<endl;
cout<<update(1,25)<<endl;
cout<<update(3,35)<<endl;
cout<<update(0,38)<<endl;
cout<<update(2,0)<<endl;
}*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |