不理解为什么会RE,神奇的是把第 34 行删了之后就不会RE了,但会WA
#include<bits/stdc++.h>
#define no puts("-1")
using namespace std;
const int N = 1e6;
int top=0,top2=0;
int a[N],b[N];
int num;
int a_i;
void dfs(int n,int step){
bool flag=false;
for(int i=1;i<=top;i++){
if(a[i]==0)continue;
if(a[i]%n!=0||n%a[i]!=0)continue;
flag=true,num=a[i];
a[i]=0;dfs(num,step+1);
a[i]=num;
}
if(!flag){
if(step%2==0){
cout<<b[a_i];
exit(0);
}
}
}
void init(){
string nums,bnum;getline(cin,nums);
nums+=" ";
int w=0;
for(int i=0;i<nums.size();i++){
if(nums[i]>='0'&&nums[i]<='9')w*=10,w+=nums[i]-'0';
else a[++top]=w,w=0;
}
w=0;getline(cin,bnum);
bnum+=" ";
for(int i=0;i<bnum.size();i++){
if(bnum[i]>='0'&&bnum[i]<='9')w*=10,w+=bnum[i]-'0';
else b[++top2]=w,w=0;
}
}
int main(){
int x;char w;
// while(scanf("%d%c",&x,&w)&&w!='\n')a[++top]=x;
// while(cin>>x)b[++top2]=x;
init();
sort(b+1,b+1+top2);
for(a_i=1;a_i<=top2;a_i++){
dfs(b[a_i],1);
}
no;
return 0;
}
有没有大佬能帮我看看为什么第 34 行会RE。
学术版发过了(here),但没人回(除了我的一个同学),所以就迁到灌水区看看有木有大佬了。