理解错题意啦,我以为是分别向下移动1个和k个,结果是1到k个 害!
也就是 第2列移动1个 第4列移动2 个 第6列移动 3个 以此类推
#include<bits/stdc++.h>
using namespace std;
int a[110][110],n,m,p,k,z[110];
int main()
{
int i,j;
cin>>n>>k>>p;
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
cin>>a[i][j];
// b[i][j]=a[i][j];
}
}
int cnt=1;
for(j=1; j*2<=n; j++)
{
z[j*2]=cnt++;
if(cnt==k+1)
cnt=1;
}
// for(i=1;i<=n;i++)
// printf("%d ",z[i]);
for(i=1; i<=n; i++)
{
int sum=0;
for(j=1; j<=n; j++)
{
// printf("+++ %d\n",sum);
if(j%2)
{
sum+=a[i][j];
continue;
}
if(i<=z[j])
{
// printf("*** %d\n",p);
sum+=p;
}
else
sum+=a[i-z[j]][j];
}
if(i==1)
printf("%d",sum);
else
printf(" %d",sum);
}
}