dev上输出正确,测评错误
查看原帖
dev上输出正确,测评错误
901454
a1765786112楼主2024/11/21 20:07
#include<stdio.h>
#include<math.h>
int flag[100]={0};
int arr[100];
int n;
int time=0;
int judge(int x1,int y1,int x2,int y2)
{
	float k=(float)(y1-y2)/(float)(x1-x2);
	if(abs(k)==1)
	{
		return 1;
	}
	return 0;
}
void dfs(int i,int n)
{
	if(i==n&&time<3)
	{
		for(int a=0;a<n;a++)
		{
			printf("%d ",arr[a]+1);
		}
		printf("\n");
	}
	if(i==n)
	{
		time+=1;
	}
	for(int a=0;a<n;a++)
	{
		int flag1=1;
		for(int j=0;j<i;j++)
		{
			if(judge(j,arr[j],i,a)==1)
			{
				flag1=0;
				break;
			}
		}
		if(flag[a]==0&&flag1==1)
		{
			flag[a]=1;
			arr[i]=a;
			dfs(i+1,n);
			flag[a]=0;
		}
	}
}
int main()
{
	scanf("%d",&n);
	dfs(0,n);
	printf("%d\n",time);
}
2024/11/21 20:07
加载中...