1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define MAXN 1010
int mp[MAXN][MAXN]; int row[MAXN], xrow[MAXN]; int colum[MAXN], xcolum[MAXN];
int main() { freopen("input.txt", "r", stdin); int T, n, m, q, x, y, op; scanf("%d", &T); while(T--){ scanf("%d%d%d", &n, &m, &q); for(int i = 1; i <= n; i++){ row[i] = i; for(int j = 1; j <= m; j++){ colum[j] = j; scanf("%d", &mp[i][j]); } } memset(xrow, 0, sizeof(xrow)); memset(xcolum, 0, sizeof(xcolum)); while(q--){ scanf("%d%d%d", &op, &x, &y); if(op == 1) swap(row[x], row[y]); else if(op == 2) swap(colum[x], colum[y]); else if(op == 3) xrow[row[x]] += y; else xcolum[colum[x]] += y; } for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ printf("%d", mp[row[i]][colum[j]] + xrow[row[i]] + xcolum[colum[j]]); if(j == m) printf("\n"); else printf(" "); } }
} return 0; }
|