玄关
查看原帖
玄关
1078808
M15388049303楼主2024/5/28 20:36
#include<bits/stdc++.h>
using namespace std;
const int N=150101,M=40001;
int n,m,sum,cnt[N],a[N],b[N],c[N],d[N],x[M],fab[N],fcd[N];
int main() {
	scanf("%d%d", &n, &m);
	for(int i=1; i<=m; i++) {
		scanf("%d", &x[i]);
		cnt[x[i]]++;
	}
	for(int t=1; t*9+2<=n; t++) {
		memset(fab,0,sizeof fab);
		for(int C=t*8+2; C<=n-t; C++) {
			int A=C-t*8-1;
			int B=A-t*2;
			int D=C+t;
			fab[C]=fab[C-1]+cnt[A]*cnt[B];
			c[C]+=fab[C]*cnt[D];
			d[D]+=fab[C]*cnt[C];
		}
		memset(fcd,0,sizeof fcd);
		for(int A=n-t*9-1; A; A--) {
			int B=A+t*2;
			int D=A+t*9+1;
			int C=D-t;
			fcd[A]=fcd[A+1]+cnt[C]*cnt[D];
			a[A]+=fcd[A]*cnt[B];
			b[B]+=fcd[A]*cnt[A];
		}
	}
	for(int i=1; i<=m; i++) {
		printf("%d %d %d %d\n",a[x[i]],b[x[i]],c[x[i]],d[x[i]]);
	}
	return 0;
}
2024/5/28 20:36
加载中...