求助
查看原帖
求助
848964
hzoi_Shadow楼主2023/1/7 20:56

为什么同一份代码在不同的oj上有不同的测评效果

洛谷

ybt题库

hydro

#include<bits/stdc++.h>
using namespace std;
int a[1005],cnt,n,sum=0;
bool vis[1005];
static inline int read()
{
    int x=0,f=1;
    char s=getchar();
    while(s>='0'&&s<='9')
    {
        x=(x<<1)+(x<<3)+(s^48);
        s=getchar();
    }
    return x*f;
}
static inline bool dfs(int k,int step,int rest,int len)
{
    int i;
    if(k==n+1&&rest==0)
    {
        return true;
    }
        else
        {
            if(k==n+1)
            {
                return false;
            }
            else
            {
                if(rest==0)
                {
                    rest=len;
                    step=0;
                }
            }
        }
    for(i=step+1;i<=n;++i)
    {
        if(!vis[i])
        {
            if(rest-a[i]>=0)
            {
                vis[i]=true;
                if(dfs(k+1,i,rest-a[i],len))
                {
                    return true;
                }
                vis[i]=false;
                if(a[i]==rest||len==rest)
                {
                    break;
                }
                while(a[i]==a[i+1])
                {
                    i++;
                }
            }
        }
    }
    return false;
}
int main()
{
    int i;
    n=read();
    for(i=1;i<=n;++i)
    {
        a[i]=read();
        sum+=a[i];
    }
    std::sort(a+1,a+1+n,greater<int>());
    for(i=a[1];i<=sum;++i)
    {
        if(!(sum%i))
        {
            if(dfs(1,0,i,i))
            {
                printf("%d",i);
                return 0;
            }
        }
    }
}
2023/1/7 20:56
加载中...