求助为什么会RE
查看原帖
求助为什么会RE
226367
glorious_dream楼主2022/2/7 15:39
#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch == '-') f=-1 ; ch=getchar();}
	while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+ch-48 ; ch=getchar();}
	return x*f;
}
vector<int>v[300];
int xxx;
string s;
void move_onto(int x,int y){
	int idxx,idxy,idyx,idyy;
	for(int i=0 ; i<xxx ; i=-~i){
		for(int j=0 ; j<v[i].size() ; j=-~j){
			if(v[i][j] == x){idxx = i;idxy = j;}
			if(v[i][j] == y){idyx = i;idyy = j;}
		}
	}
	if(idxx == idyx) return;
	for(register int i(idxy) ; i<v[idxx].size() ; i=-~i) v[v[idxx][i]][0] = v[idxx][i];
	for(register int i(idyy) ; i<v[idyx].size() ; i=-~i) v[v[idyx][i]][0] = v[idyx][i];
	int tmp =v[idxx].size();
	for(register int i(idxy) ; i<tmp ; i=-~i) v[idxx].pop_back();
	tmp = v[idyx].size();
	for(register int i(idyy+1) ; i<tmp ; i=-~i) v[idyx].pop_back();
	v[idyx].push_back(x);
}
void move_over(int x,int y){
	int idxx,idxy,idyx,idyy;
	for(int i=0 ; i<xxx ; i=-~i){
		for(int j=0 ; j<v[i].size() ; j=-~j){
			if(v[i][j] == x){idxx = i;idxy = j;}
			if(v[i][j] == y){idyx = i;idyy = j;}
		}
	}
	if(idxx == idyx) return;
	for(register int i(idxy) ; i<v[idxx].size() ; i=-~i) v[v[idxx][i]][0] = v[idxx][i];
	v[idyx].push_back(x);
	int tmp = v[idxx].size();
	for(register int i(idxy) ; i<tmp ; i=-~i) v[idxx].pop_back();
}
void pile_onto(int x,int y){
	int idxx,idxy,idyx,idyy;
	for(int i=0 ; i<xxx ; i=-~i){
		for(int j=0 ; j<v[i].size() ; j=-~j){
			if(v[i][j] == x){idxx = i;idxy = j;}
			if(v[i][j] == y){idyx = i;idyy = j;}
		}
	}
	if(idxx == idyx) return;
	for(register int i(idyy) ; i<v[idyx].size() ; i=-~i) v[v[idyx][i]][0] = v[idyx][i];
	int tmp = v[idyx].size();
	for(register int i(idyy+1) ; i<tmp ; i=-~i) v[idyx].pop_back();
	for(register int i(idxy) ; i<v[idxx].size() ; i=-~i) v[idyx].push_back(v[idxx][i]);
	tmp = v[idxx].size();
	for(register int i(idxy) ; i<tmp ; i=-~i) v[idxx].pop_back();
}
void pile_over(int x,int y){
	int idxx,idxy,idyx,idyy;
	for(int i=0 ; i<xxx ; i=-~i){
		for(int j=0 ; j<v[i].size() ; j=-~j){
			if(v[i][j] == x){idxx = i;idxy = j;}
			if(v[i][j] == y){idyx = i;idyy = j;}
		}
	}
	if(idxx == idyx) return;
	for(register int i(idxy) ; i<v[idxx].size() ; i=-~i) v[idyx].push_back(v[idxx][i]);
	int tmp=v[idxx].size();
	for(register int i(idxy) ; i<tmp ; i=-~i) v[idxx].pop_back();
}
void pr(){
	for(register int i(0) ; i<xxx ; i=-~i){
		cout << i << ": ";
		for(register int j(0) ; j<v[i].size() ; j=-~j) cout << v[i][j] << " ";
		cout << endl;
	}
	return;
}
int main(){
	cin >> xxx;
	for(register int i(0) ; i<xxx ; i=-~i) v[i].push_back(i);
	while(cin >> s){
		if(s[0] == 'q'){pr();return 0;}
		int m,n;
		string a;
		cin >> m >> a >> n;
		if(s[0] == 'm' && a[1] == 'n') move_onto(m,n);
		if(s[0] == 'm' && a[1] == 'v') move_over(m,n);
		if(s[0] == 'p' && a[1] == 'n') pile_onto(m,n);
		if(s[0] == 'p' && a[1] == 'v') pile_over(m,n);
	}
	return 0;
}
2022/2/7 15:39
加载中...