Submission #1186760

#TimeUsernameProblemLanguageResultExecution timeMemory
1186760simona1230Dancing Elephants (IOI11_elephants)C++20
0 / 100
1 ms320 KiB
#include "elephants.h" #include <bits/stdc++.h> using namespace std; int n; int sz=40; int b[150001][55]; multiset<int> s; int l; int p[150001]; int id=1; void init(int N, int L, int X[]) { l=L; for(int i=0;i<N;i++) { s.insert(X[i]); p[i]=X[i]; } /*auto it=s.end(); for(int i=N-1;i>=0;i--) { it--; mp[*it]=i; int x=N-2*i+1; for(int j=x+1;j<=sz;j++) b[i][j]=1e9; auto it1=s.lower_bound(*it+L); it1++; if(it1==s.end()||mp[*it1]-i+1>=sz) { for(int j=1;j<=x;j++) b[i][j]=1; continue; } int y=mp[*it1]; y=mp[y]; }*/ } map<int,int> mp,r; int update(int i, int y) { int pr=p[i]; id++; s.erase(s.find(p[i])); s.insert(y); p[i]=y; int ans=0,z=0; vector<int> g; auto it=s.begin(); while(it!=s.end()) { int x=*it+l; //cout<<*it<<" "; if(mp[*it]==id-1&&*it>y&&*it>pr) { //cout<<"in "<<endl; z=r[*it]; break; } g.push_back(*it); ans++; it=s.upper_bound(x); } //cout<<endl; int curr=z; for(int i=g.size()-1;i>=0;i--) { curr++; mp[g[i]]=id; r[g[i]]=curr; } 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...