题目描述
输入一个二维数组,有大量的零存在,将其转换为k×3的二维数组存储,在k×3的二维数组中,每一行的第一个数为行号,第二个数为列,第三个数为非零元素的值。
输入格式
第一行 m,n表示二维数组 m行,n列 <=500 接下来 m行,n列的数,a[i,j]<=10000
输出格式
若干行:每行三个数,分别是 i, j,a[i,j]. 要求 按照 行标从小到大,如果行标相等,列表从小到大的顺序输出。
样例数据
input
3 5
0 0 1 0 0
2 0 0 0 0
0 0 0 0 3
output
1 3 1
2 1 2
3 5 3
数据规模与约定
时间限制:1s
空间限制:256MB
#include<bits/stdc++.h>
using namespace std;
int m,n,a[510][510];
int main()
{
freopen("spar.in","r",stdin);
freopen("spar.out","w",stdout);
cin>>m>>n;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i][j]!=0)
{
cout<<i<<" "<<j<<" "<<a[i][j]<<endl;
}
}
}
return 0;
}