求调代码
  • 板块灌水区
  • 楼主JingchenBian
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/5 15:28
  • 上次更新2024/5/5 16:50:31
查看原帖
求调代码
1023281
JingchenBian楼主2024/5/5 15:28

#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
int maxsize,op,k,id=1,idx;
queue<int> history;
int dvis[10000001];
int main(){
	//freopen("browser.in","r",stdin);
	//freopen("browser.out","w",stdout);
	scanf("%d",&maxsize);
	while(cin>>op){
		if(op==0) return 0;
		if(op==1){
			history.push(id);
			id++;
			dvis[id]=id;
			idx=id;
			if(int(history.size())>maxsize){
				dvis[history.front()]=0;
				history.pop();
				id--;
			}
		}
		if(op==2){
			scanf("%d",&k);
			if(idx+k-1>(int)history.size()){
				puts("Error: no forward history");
			}
			printf("%d\n",dvis[idx+k-1]);
			idx=k;
		}
		if(op==3){
			scanf("%d",&k);
			if(idx-k+1<1){
				puts("Error: no back history");
			}
			printf("%d\n",dvis[idx-k+1]);
			idx=k;
		}
	}
	return 0;
}

2024/5/5 15:28
加载中...