问题 J: 稀疏矩阵转换成简记形式-附加代码模式

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1448 解决:957

题目描述

大部分元素是0的矩阵称为稀疏矩阵,假设有k个非0元素,则可把稀疏矩阵用k*3的矩阵简记之,其中第一列是行号,第二列是列号,第三列是该行、该列下的非元素的值。如:
0 0 0 5
0 2 0 0
0 1 0 0
可以简记成:
1 4 5
2 2 2
3 2 1
试编程读入一稀疏矩阵,转换成简记形式,并输出。
本题为附加代码模式,main函数代码会自动补在同学们提交的代码后面,具体如下:
int main()
{
    // freopen("/config/workspace/answer/test.in","r",stdin);
    int *matrixmn;
    cin >> m;
    cin >> n;
    matrix = new int[m*n];
    for (int i = 0i < m*ni++)
        cin >> matrix[i];

    TriTable T;
    CreateTriTable(Tmatrixmn);
    PrintTriTable(T);
    DestroyTriTable(T);
    delete []matrix;
    return 0;
}

输入

首先有一行两个整数n和m,表示矩阵的行数和列数。 1<=n,m<=100
接下来的n行,每行有m个数,表示该矩阵。

输出

按题目要求输出矩阵的简记形式。

样例输入 复制

3 5
0 0 0 0 5
0 0 4 0 0
1 0 0 0 1

样例输出 复制

1 5 5 
2 3 4 
3 1 1 
3 5 1 

提示

代码框架如下图所示: