暴力dfs样例过了一分没有求救
查看原帖
暴力dfs样例过了一分没有求救
390150
平等与晚钟楼主2023/9/8 21:07
#include<bits/stdc++.h>
using namespace std;
struct code
{
	int shu;
	int x;
	int b;
	int c;
	int d;
	int i;
};
code a[1000];
int n;
int jg[5];
bool cmp(code x,code y)
{
	return x.shu<y.shu;
}
bool cmp2(code x,code y)
{
	return x.i<y.i;
}
void print()
{
	int a1,a2,a3,a4;
	a1=a[jg[1]].shu;
	a2=a[jg[2]].shu;
	a3=a[jg[3]].shu;
	a4=a[jg[4]].shu;
//	cout<<a1<<";"<<a2<<";"<<a3<<";"<<a4<<endl;
	if(a2-a1==2*(a4-a3)&&a2-a1<(a3-a2)/3.0)
	{
		a[jg[1]].x++;
		a[jg[2]].b++;
		a[jg[3]].c++;
		a[jg[4]].d++;
	}
}
void ss(int x,int k)
{
	if(k==5)
	{
		print();
		return;
	}
	for(int i=x;i<=n;i++)
	{
		jg[k]=i;
		ss(i+1,k+1);
	}
}
int main()
{ 
//	freopen("magic.in","r",stdin);
//	freopen("magic.out","w",stdout);
	int m;
	cin>>m>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].shu;
		a[i].x=a[i].b=a[i].c=a[i].d=0;
		a[i].i=i;
	}
	
	sort(a+1,a+n+1,cmp);
	ss(1,1);
	sort(a+1,a+n+1,cmp2);
	for(int i=1;i<=n;i++)
		cout<<a[i].x<<" "<<a[i].b<<" "<<a[i].c<<" "<<a[i].d<<endl;
}
2023/9/8 21:07
加载中...