记录编号 |
555732 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[NOIP 2016PJ]魔法阵 |
最终得分 |
100 |
用户昵称 |
2020noip |
是否通过 |
通过 |
代码语言 |
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;
}