80分两个TLE
查看原帖
80分两个TLE
1023461
Nian_Gao楼主2023/11/25 20:19
#include<iostream>

using namespace std;

int n ,x ,y ,num = 1,first = 1;
int f;
struct node{
	int val;
	int next;
}lis[1000010];
int main(){
	lis[num].val = 1;
	lis[num].next = 0;
	cin >> n;
	for(int i = 1;i <= n;i++){
		cin >> f;
		if(f == 1){
			cin >> x >> y;
			int id = first;
			while(id != 0){
				if(lis[id].val == x){
					num++;
					lis[num].val = y;
					lis[num].next = lis[id].next;
					lis[id].next = num;
					break;
				}else {
					id = lis[id].next;
				}
			}
		} else if(f == 2) {
			cin >> x;
			int id = first;
			while(id != 0){
				if(lis[id].val == x){
					if(lis[id].next == 0){
						cout << '0' << endl;
					}else {
						int tmp  = lis[id].next;
						cout << lis[tmp].val << endl;
					}
					break;
				}else {
					id = lis[id].next;
				}
			}
		} else if(f == 3) {
			cin >> x;
			int id = first;
			while(id != 0){
				if(lis[id].val == x){
					if(lis[id].next == 0){
						break;
					} else {
						int tmp = lis[id].next;
						int tmp2 = lis[tmp].next;
						lis[id].next = tmp2;
					}
					break;
				} else {
					id=lis[id].next;
				}
			}
		}
	}
	return 0;
}

2023/11/25 20:19
加载中...