记录编号 555732 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 [NOIP 2016PJ]魔法阵 最终得分 100
用户昵称 Gravatar2020noip 是否通过 通过
代码语言 C++ 运行时间 0.362 s
提交时间 2020-10-11 11:39:09 内存使用 2.82 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int a[15005],b[15005],c[15005],d[15005],w[15005],h[40005],n,m,x,y;
int main()
{
	freopen("magicb.in","r",stdin);
	freopen("magicb.out","w",stdout);
	cin>>n>>m;
	if(n<11)
	{
		for(int i=1;i<=m;i++) printf("0 0 0 0\n");
		return 0;
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&h[i]);
		w[h[i]]++;
	}
	for(int i=1;i<=n/9;i++)
	{
		x=1+9*i,y=0;
		for(int j=2+9*i;j<=n;j++)
		{
			y+=w[j-x]*w[j-x+i+i];
			d[j]+=y*w[j-i];
			c[j-i]+=y*w[j];
		}
		x=8*i+1,y=0;
		for(int j=n-9*i-1;j>=1;j--)
		{
			y+=w[j+x]*w[j+x+i];
			a[j]+=y*w[j+i+i];
			b[j+i+i]+=y*w[j];
		}
	}
	for(int i=1;i<=m;i++)
		cout<<a[h[i]]<<' '<<b[h[i]]<<' '<<c[h[i]]<<' '<<d[h[i]]<<endl;
}