听取蛙声一片
查看原帖
听取蛙声一片
250699
mot1ve楼主2020/8/31 21:26
#include<bits/stdc++.h>
using namespace std;
int n,m;
int s1[40010],s2[40010],s3[40010],s4[40010];
struct node{
	int id,w;
}f[40010];
bool cmp(node a,node b)
{
	return a.w<b.w;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&f[i].w);
		f[i].id=i;//sort之后会打乱下标,保存原下标 
	}
	sort(f+1,f+1+m,cmp);//升序排,就可以按照+1枚举了 
	for(int a=1;a<=m;a++)//A物品 
	{
		for(int b=a+1;b<=m;b++)//B物品 
		{
			for(int c=b+1;c<=m;c++)//C物品 
			{
				for(int d=c+1;d<=m;d++)//D物品 
				{
					if(f[b].w-f[a].w==2*(f[d].w-f[c].w)&&3*(f[b].w-f[a].w)<f[c].w-f[b].w)
					{
						s1[f[a].id]++;
						s2[f[b].id]++;
						s3[f[c].id]++;
						s4[f[d].id]++;
					}
				}
			}
		}
	}
	for(int i=1;i<=m;i++)
	{
		printf("%d %d %d %d\n",s1[i],s2[i],s3[i],s4[i]);
	}
	return 0;
}
2020/8/31 21:26
加载中...