为啥会超出时限啊,用了个双向环形链表
查看原帖
为啥会超出时限啊,用了个双向环形链表
464163
Hryzion楼主2021/1/1 21:23
#include <iostream>
#include <string>
using namespace std;

struct toy{
	toy *clo;//顺时针
	bool inner;
	string job;
	toy* pclo;//逆时针;
};

int main(){
	int num;
	int com;
	cin >> num;
	cin >> com;
	toy *p, *q;
	toy *head = NULL;
	for (int i = 0; i < num; ++i){
		p = new toy;
		p->pclo = p->clo = 0;
		cin >> p->inner >> p->job;
		if (!head){
			head = p;
			q = p;
		}
		else{
			q->pclo = p;
			p->clo = q;
			q = p;
		}
	}
	p->pclo = head;
	head->clo = p;
	p = head;
	if (!head) return 0;
	bool dir;
	int step;
	for (int i = 0; i < com; ++i){
		cin >> dir >> step;
		step %= num;
		if (dir^p->inner){
			for(int j = 0; j < step; ++j){
				p = p->pclo;
			}
		}
		else {
			for(int j = 0; j < step; ++j){
				p = p->clo;
			}
		}
	}

	cout << p->job <<endl;
	//system ("pause");
	return 0;
}

2021/1/1 21:23
加载中...