附:60分暴力lowbee程序
```cpp
#include <bits/stdc++.h>
using namespace std;
int magic[40003];
int cnta[40003],cntb[40003],cntc[40003],cntd[40003];
struct ob
{
int v,ord;
}objs[40003];
bool cmp(ob a,ob b){return a.v<b.v;}
int main(int argc, char const *argv[])
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>magic[i];
objs[i].v=magic[i];objs[i].ord=i;
}
sort(objs+1,objs+m+1,cmp);
for(int i=1;i<=m;i++)
for(int j=i+1;j<=m;j++)
if((objs[j].v-objs[i].v)%2==0)
for(int k=j+1;k<=m;k++)
if((objs[j].v-objs[i].v)*3<(objs[k].v-objs[j].v))
for(int l=k+1;l<=m;l++)
if((objs[l].v-objs[k].v)*2==(objs[j].v-objs[i].v))
{
cnta[objs[i].ord]++;
cntb[objs[j].ord]++;
cntc[objs[k].ord]++;
cntd[objs[l].ord]++;
}
for(int i=1;i<=m;i++)
{
cout<<cnta[i]<<' '<<cntb[i]<<' '<<cntc[i]<<' '<<cntd[i]<<' '<<endl;
}
return 0;
}
```
by SEELE @ 2017-11-07 17:30:42
上面那个程序就是没判断xa!=xb的0分错误程序
正确:
```cpp
#include <bits/stdc++.h>
using namespace std;
int magic[40003];
int cnta[40003],cntb[40003],cntc[40003],cntd[40003];
struct ob
{
int v,ord;
}objs[40003];
bool cmp(ob a,ob b){return a.v<b.v;}
int main(int argc, char const *argv[])
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>magic[i];
objs[i].v=magic[i];objs[i].ord=i;
}
sort(objs+1,objs+m+1,cmp);
for(int i=1;i<=m;i++)
for(int j=i+1;j<=m;j++)
if((objs[j].v-objs[i].v)&&(objs[j].v-objs[i].v)%2==0&&(objs[j].v-objs[i].v)/2*9<n)
{
for(int k=j+1;k<=m;k++)
if((objs[j].v-objs[i].v)*3<(objs[k].v-objs[j].v))
for(int l=k+1;l<=m;l++)
if((objs[l].v-objs[k].v)*2==(objs[j].v-objs[i].v))
{
cnta[objs[i].ord]++;
cntb[objs[j].ord]++;
cntc[objs[k].ord]++;
cntd[objs[l].ord]++;
//cout<<objs[i].v<<' '<<objs[j].v<<' '<<objs[k].v<<' '<<objs[l].v<<endl;
}
}
for(int i=1;i<=m;i++)
{
cout<<cnta[i]<<' '<<cntb[i]<<' '<<cntc[i]<<' '<<cntd[i]<<' '<<endl;
}
return 0;
}
```
by SEELE @ 2017-11-07 17:32:25
谢谢大佬,我原来只有十分
by 八水L @ 2018-04-28 10:41:41
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n,m;
int q[40001], w[15001];
int a[15001], b[15001], c[15001], d[15001];
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>q[i];
w[q[i]]++;
}
for(int i=1;i*9+1<=n;i++){
int e=0;
for(int j=i*9+2;j<=n;j++){
e+=w[j-7*i-1]*w[j-9*i-1];
c[j-i]+=w[j]*e;
d[j]+=w[j-i]*e;
}
e=0;
for(int j=n-i*9-1;j>=1;j--){
e+=w[j+i*9+1]*w[j+i*8+1];
a[j]+=w[j+2*i]*e;
b[j+2*i]+=w[j]*e;
}
}
for(int i=1;i<=m;i++){
cout<<a[q[i]]<<" "<<b[q[i]]<<" "<<c[q[i]]<<" "<<d[q[i]]<<endl;
}
return 0;
}
by wangck @ 2018-05-01 16:36:55
@[沙漠之雁](/space/show?uid=33776) 求大佬帮我看看我这个为什么错?谢谢!
```cpp
#include <bits/stdc++.h>
using namespace std;
int n,m,a[40009];
struct U {
int yi;
int er;
int san;
int si;
};
U fj[40009];
int main() {
scanf("%d %d",&n,&m);
for(int i=1; i<=m; i++) {
scanf("%d",&a[i]);
}
sort(a+1,a+m+1);
for(int i=1; i<=m; i++) {
for(int j=i+1; j<=m; j++) {
for(int k=j+1; k<=m; k++) {
for(int l=k+1; l<=m; l++) {
if(a[j]-a[i]==2*(a[l]-a[k])) {
if(a[j]-a[i]<(a[k]-a[j])/3) {
fj[i].yi++;
fj[j].er++;
fj[k].san++;
fj[l].si++;
}
}
}
}
}
}
for(int i=1; i<=m; i++) {
printf("%d %d %d %d\n",fj[i].yi,fj[i].er,fj[i].san,fj[i].si);
}
return 0;
}
```
by si_zhong @ 2018-08-06 18:36:52
没有判 A=B,B=C,C=D的情况
@[tan_gent](/user/31728)
by 洛谷Onlinejudge @ 2019-11-09 12:14:21