求条玄关!!!
查看原帖
求条玄关!!!
1121009
luoyiwen楼主2024/11/9 17:42
#include<bits/stdc++.h>
using namespace std;
long long n,m,k,x,y,z,sum;
int a[5005][5005],aa[5005][5005],s[5005][5005],d[5005][5005];
int main(){
	cin>>n>>m>>k;
	for(int i=1;i<=m;i++)
	{
		cin>>x>>y>>z;
		a[x][y]=z;
	}
	for(int i=1;i<=n-k+1;i++)
	{
		for(int j=1;j<=n-k+1;j++)
		{
			s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+s[i][j];
			aa[i][j]=a[i][j]+s[i][j];
			if(aa[i][j]!=0)
			{
				sum+=abs(aa[i][j]);
				d[i][j]-=aa[i][j];
				d[i][j+k]+=aa[i][j];
				d[i+k][j]+=aa[i][j];
				d[i+k][j+k]-=aa[i][j];	
				s[i][j]-=aa[i][j];
				if(i+k>n+1||j+k>n+1) {cout<<-1;return 0;}
			}
			
		}
		
	}
	if(sum==0) cout<<-1;
	else cout<<sum;
	return 0;
}	
2024/11/9 17:42
加载中...