莫名RE
查看原帖
莫名RE
366468
_Z_Y_X_SWS楼主2022/7/18 16:27
#include <bits/stdc++.h>
using namespace std;
int t,ca,cb,n,a[1000005],b[1000005],l;
string f[1000005];
bool o[1005][1005];
int main (){
	cin>>t;
	for (int k=1;k<=t;k++){
		cin>>ca>>cb>>n;
		int i=0,j=1;
		a[i]=0;b[i]=0;
		o[0][0]=1;
		while (i<j){
			if (a[i]!=ca){
				a[j]=ca;
				b[j]=b[i];
				f[j]=f[i]+"1";
				if (o[a[j]][b[j]]==0){
					j++;
					o[a[j]][b[j]]==1;
				}
				
			}
			if (b[i]!=cb){
				b[j]=cb;
				a[j]=a[i];
				f[j]=f[i]+"2";
				if (o[a[j]][b[j]]==0){
					j++;
					o[a[j]][b[j]]==1;
				}
			}
			if (a[i]!=0){
				a[j]=0;
				b[j]=b[i];
				f[j]=f[i]+"3";
				if (o[a[j]][b[j]]==0){
					j++;
					o[a[j]][b[j]]==1;
				}
			}
			if (b[i]!=0){
				b[j]=0;
				a[j]=a[i];
				f[j]=f[i]+"4";
				if (o[a[j]][b[j]]==0){
					j++;
					o[a[j]][b[j]]==1;
				}
			}
			if (a[i]!=0&&b[i]!=cb){
				int p=cb-b[i];
				if (a[i]>=p){
					a[j]=a[i]-p;
					b[j]=cb;
				}
				else {
					a[j]=0;
					b[j]=b[i]+a[i];
				}
				f[j]=f[i]+"6";
				if (o[a[j]][b[j]]==0){
					j++;
					o[a[j]][b[j]]==1;
				}
			}
			if (b[i]!=0&&a[i]!=ca){
				int p=ca-a[i];
				if (b[i]>=p){
					b[j]=b[i]-p;
					a[j]=ca;
				}
				else {
					b[j]=0;
					a[j]=a[i]+b[i];
				}
				f[j]=f[i]+"5";
				if (o[a[j]][b[j]]==0){
					j++;
					o[a[j]][b[j]]==1;
				}
			}
			i++;
			if (b[j-1]==n){
				break;
			}
		}
		int len=f[j-1].size();
		cout<<len<<" ";
		for (i=0;i<len;i++){
			cout<<f[j-1][i]<<" ";
		}
		cout<<endl;
		for (i=1;i<j;i++){
			f[i]="";
			a[i]=0;
			b[i]=0;
		}
	}
	return 0;
}
2022/7/18 16:27
加载中...