HDU 5671 Matrix - dblank

# Matrix

Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 477    Accepted Submission(s): 207

Problem Description

There is a matrix M that has n rows and m columns (1n1000,1m1000).Then we perform q(1q100,000) operations:

1 x y: Swap row x and row y (1x,yn);

2 x y: Swap column x and column y (1x,ym);

3 x y: Add y to all elements in row x (1xn,1y10,000);

4 x y: Add y to all elements in column x (1xm,1y10,000);

Input

There are multiple test cases. The first line of input contains an integer T(1T20) indicating the number of test cases. For each test case:

The first line contains three integers nm and q.
The following n lines describe the matrix M.(1Mi,j10,000) for all (1in,1jm).
The following q lines contains three integers a(1a4)x and y.

Output
For each test case, output the matrix M after all q 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

Hint

Recommand to use scanf and printf

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<map>
#include<vector>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const ll INF = 0x3f3f3f3f;
const double  pi = acos(-1.0);
const ll N = 1e3 + 10;
int mat[N][N];
ll ans[N][N];
struct node
{
int root;
} line[N], cal[N];
int main()
{
int t;
cin>>t;
while(t--)
{
int n, m, q;
scanf("%d%d%d", &n, &m, &q);
for(int i = 0; i<n; i++)
line[i].root = i, line[i].add = 0LL;
for(int j = 0; j<m; j++)
for(int i = 0; i<n; i++)
for(int j = 0; j<m; j++)
scanf("%d", &mat[i][j]);
int x, y, a;
while(q--)
{
scanf("%d%d%d", &a, &x, &y);
--x;
if(a == 1)
{
--y;
swap(line[x], line[y]);
}
if(a == 2)
{
--y;
swap(cal[x], cal[y]);
}
if(a == 3)
{
//--y;
}
if(a == 4)
{
}
}
for(int i = 0; i<n; i++)
for(int j = 0; j<m; j++)
{
}
for(int i = 0; i<n; i++)
{
for(int j = 0; j<m; j++)
{
if(j == 0)
printf("%I64d", ans[i][j]);
else printf(" %I64d", ans[i][j]);
}
printf("\n");
}
}
return 0;
}