1 条题解

  • 1
    @ 2024-5-21 19:04:26
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    inline int read(){
        int x=0,f=1;char c=getchar();
        while(c<'0'||c>'9'){if(c=='-')f=-f;c=getchar();}
        while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+c-'0';c=getchar();}
        return x*f;
    }
    #define N 50010
    int n,m;
    int a[N],b[N],c[N],d[N];
    int x[N],vis[N];
    int main(){
    	n=read();m=read();
    	for(int i=1;i<=m;i++)
    		x[i]=read(),vis[x[i]]++;
    	for(int t=1;t*9<n;t++){
    		int sum=0;
    		for(int D=9*t+2;D<=n;D++){
    			int A=D-9*t-1;
    			int B=A+2*t;
    			int C=D-t;
    			sum+=vis[A]*vis[B];
    			c[C]+=vis[D]*sum;
    			d[D]+=vis[C]*sum;
    		}
    		sum=0;
    		for(int A=n-9*t-1;A;A--){
    			int B=A+2*t;
    			int C=B+6*t+1;
    			int D=A+9*t+1;
    			sum+=vis[C]*vis[D];
    			a[A]+=vis[B]*sum;
    			b[B]+=vis[A]*sum;
    		}
    	}
    	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;
    }
    

    AC

    • 1

    信息

    ID
    1395
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    22
    已通过
    15
    上传者