1 // (1) 在最左侧插入一个数; 2 3 // (2) 在最右侧插入一个数; 4 5 // (3) 将第k个插入的数删除; 6 7 // (4) 在第k个插入的数左侧插入一个数; 8 9 // (5) 在第k个插入的数右侧插入一个数 10 #include<iostream> 11 #include<algorithm> 12 using namespace std; 13 const int N=100010; 14 int e[N],l[N],r[N],idx; 15 int m; 16 void init(){ 17 r[0]=1; 18 l[1]=0; 19 idx=2; 20 } 21 void insert(int k,int x){ 22 e[idx]=x; 23 l[idx]=k; 24 r[idx]=r[k]; 25 l[r[k]]=idx; 26 r[k]=idx; 27 idx++; 28 } 29 void remove(int k){ 30 l[r[k]]=l[k]; 31 r[l[k]]=r[k]; 32 } 33 int main(void){ 34 init(); 35 cin>>m; 36 for(int i=0;i<m;i++){ 37 string s; 38 int k,x; 39 cin>>s; 40 if(s=="L"){ 41 cin>>x; 42 insert(0,x); 43 }else if(s=="R"){ 44 cin>>x; 45 insert(l[1],x); 46 }else if(s=="D"){ 47 cin>>k; 48 remove(k+1); 49 }else if(s=="IL"){ 50 cin>>k>>x; 51 insert(l[k+1],x); 52 }else if(s=="IR"){ 53 cin>>k>>x; 54 insert(k+1,x); 55 } 56 } 57 for(int i=r[0];i!=1;i=r[i]){ 58 cout<<e[i]<<" "; 59 } 60 return 0; 61 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端