Description
There is a matrix
that has
rows and
columns
.Then we perform
operations:
1 x y: Swap row x and row y ;
2 x y: Swap column x and column y ;
3 x y: Add y to all elements in row x ;
4 x y: Add y to all elements in column x ;
1 x y: Swap row x and row y ;
2 x y: Swap column x and column y ;
3 x y: Add y to all elements in row x ;
4 x y: Add y to all elements in column x ;
Input
There are multiple test cases. The first line of input contains an integer
indicating the number of test cases. For each test case:
The first line contains three integers , and .
The following lines describe the matrix M. for all .
The following lines contains three integers , and .
The first line contains three integers , and .
The following lines describe the matrix M. for all .
The following lines contains three integers , and .
Output
For each test case, output the matrix
after all
operations.
Sample Input
2 3 4 2 1 2 3 4 2 3 4 5 3 4 5 6 1 1 2 3 1 10 2 2 2 1 10 10 1 1 1 2 2 1 2
Sample Output
12 13 14 15 1 2 3 4 3 4 5 6 1 10 10 1
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int map[1010][1010];
int main()
{
int h[1010],l[1010],a[1010],b[1010];
int t,n,m,q;
int i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&n,&m,&q);
for(i=1;i<=n;i++)
{
h[i]=i;
for(j=1;j<=m;j++)
{
l[j]=j;
scanf("%d",&map[i][j]);
}
}
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
while(q--)
{
int u,x,y;
scanf("%d%d%d",&u,&x,&y);
if(u==1)
swap(h[x],h[y]);
else if(u==2)
swap(l[x],l[y]);
else if(u==3)
a[h[x]]+=y;
else
b[l[x]]+=y;
}
for(i=1;i<=n;i++)
{
printf("%d",map[h[i]][l[1]]+a[h[i]]+b[l[1]]);
for(j=2;j<=m;j++)
printf(" %d",map[h[i]][l[j]]+a[h[i]]+b[l[j]]);
printf("\n");
}
}
return 0;
}
#include<algorithm>
#include<string.h>
using namespace std;
int map[1010][1010];
int main()
{
int h[1010],l[1010],a[1010],b[1010];
int t,n,m,q;
int i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&n,&m,&q);
for(i=1;i<=n;i++)
{
h[i]=i;
for(j=1;j<=m;j++)
{
l[j]=j;
scanf("%d",&map[i][j]);
}
}
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
while(q--)
{
int u,x,y;
scanf("%d%d%d",&u,&x,&y);
if(u==1)
swap(h[x],h[y]);
else if(u==2)
swap(l[x],l[y]);
else if(u==3)
a[h[x]]+=y;
else
b[l[x]]+=y;
}
for(i=1;i<=n;i++)
{
printf("%d",map[h[i]][l[1]]+a[h[i]]+b[l[1]]);
for(j=2;j<=m;j++)
printf(" %d",map[h[i]][l[j]]+a[h[i]]+b[l[j]]);
printf("\n");
}
}
return 0;
}