2D prefix sum in cpp
by ujjal roy
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,i,j;
cin>>n>>m;
int arr[n][m],pre[n][m];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)cin>>arr[i][j];
}
pre[0][0]=arr[0][0];
for(i=1;i<m;i++)pre[0][i]=pre[0][i-1]+arr[0][i];
for(j=1;j<n;j++) pre[j][0]=pre[j-1][0]+arr[j][0];
for(i=1;i<n;i++)
{
for(j=1;j<m;j++)
{
pre[i][j]=arr[i][j]+pre[i-1][j]+pre[i][j-1]-pre[i-1][j-1];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
cout<<pre[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
0 Comments