六十分求调一个RE一个TLE
查看原帖
六十分求调一个RE一个TLE
1252300
chi_li_zi楼主2024/9/15 17:32
#include<bits/stdc++.h>
using namespace std;
bool ck[1000000000+1];
int main(){
	int th,has=0;
	cin>>th;
	for(int i=0;i<th;i++){
		int c,len;
		cin>>c;
		if(c==1){
			cin>>len;
			if(ck[len]){
				cout<<"Already Exist\n";
			}else{
				ck[len]=1;
				has+=1;
			}
		}
		if(c==2){
			int fflag=1,flag=1,l=0,dang,zf=-1,answer,ds=0;
			cin>>len;
			if(has==0){
				cout<<"Empty\n";
			}else{
				dang=len;
				while(flag){
					if(dang+l<0||dang+l>100000000+2){
						fflag=0;
						l*=zf;
//						cout<<"---------------";
					}
					if(ck[dang+l]){
						answer=dang+l;
						ck[dang+l]=0;
						has-=1;
						flag=0;
					}else{
						if(fflag){
							l*=zf;
//							cout<<l;
						}
						if(ds){
							if(l>0){
								l++;
							}else{
								l--;
							}
							ds=0;
							continue;
						}
						ds=1;

					}
/////					cout<<"-----("<<l<<"-----\n";
				}
				cout<<answer<<"\n";
			}
		}
	}
	return 0;
}
2024/9/15 17:32
加载中...