为什么输出全正确还会wa

P1618 三连击(升级版)

YTZJZYC @ 2023-10-16 20:46:17

评测记录

我下载了数据,有个和样例一样的,结果就是过不去,非加强版也是一样,直接输出最终结果才过去的

感谢大佬!!!!

#include<iostream>
using namespace std;
int a1,b1,c1;
bool f=1;

void dfs(bool a[],int s,int l[]){
    if(s==9){
        int x=l[1]*100+l[2]*10+l[3];
        int y=l[4]*100+l[5]*10+l[6];
        int z=l[7]*100+l[8]*10+l[9];
        if((x*c1)==(z*a1)&&(x*b1)==(y*a1)){
            cout<<x<<" "<<y<<" "<<z<<endl;
            f=0;
        }
    }else{
        for(int i=1;i<=9;i++){
            if(a[i]==0){
                s++;
                l[s]=i;
                a[i]=1;
                dfs(a,s,l);
                a[i]=0;
                s--;
            } 
        }
    }
    return;
}
int main(){
    cin>>a1>>b1>>c1;
    int c[20];
    bool d[20];
    dfs(d,0,c);
    if(f) puts("No!!!");
    return 0;
} 

by Nobelium_255 @ 2023-10-16 20:57:48

最好是不要把数组定义成局部的


by xQWQx @ 2023-10-16 20:59:34

@YTZJZYC

你清空一下数组或者把数组改成全局变量


by xQWQx @ 2023-10-16 21:01:07

@YTZJZYC

然后就可以了

求关QWQ


by xQWQx @ 2023-10-16 21:02:29

因为你定义的局部变量,数组的值是随机的,定义成全局变量就不会,下一次尽量不要把数组定义成局部的


by xQWQx @ 2023-10-16 21:04:03

@YTZJZYC

AC记录


by YTZJZYC @ 2023-10-17 06:57:33

@Nobelium_255 谢谢!我尝试一下


by YTZJZYC @ 2023-10-17 06:58:11

@C112345565 谢谢!今天刚到机房,看看行不行


by YTZJZYC @ 2023-10-17 07:01:09

通过了,谢谢!


|