分数 10
作者 王东
单位 贵州师范学院
三元组顺序表表示的稀疏矩阵转置。
输入格式:
输入第1行为矩阵行数m、列数n及非零元素个数t。
按行优先顺序依次输入t行,每行3个数,分别表示非零元素的行标、列标和值。
输出格式:
输出转置后的三元组顺序表结果,每行输出非零元素的行标、列标和值,行标、列标和值之间用空格分隔,共t行。
输入样例1:
3 4 3
0 1 -5
1 0 1
2 2 2
输出样例1:
0 1 1
1 0 -5
2 2 2
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
struct node {
int x, y, w;
}p[N];
bool cmp(node x, node y) {
if (x.x != y.x) return x.x < y.x;
return x.y < y.y;
}
int main() {
int n, m, t;
cin >> n >> m >> t;
// 直接 x 和 y 交换输入, 相当于转置后了
for (int i = 0; i < t; i++) cin >> p[i].y >> p[i].x >> p[i].w;
sort(p, p + t, cmp);
for (int i = 0; i < t; i++) cout << p[i].x << " " << p[i].y << " " << p[i].w << endl;
return 0;
}