描述
给定一个对称矩阵,我们可以将下三角阵(或上三角阵)存储于一维数组中,实现数据压缩(内存空间减半)。
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
GCC
int main()
{
int n, i, j, a[100][100];
scanf("%d", &n);
for(i=0;ifor(j=0;jscanf("%d", &a[i][j]);
}
int *b = (int*)malloc(sizeof(int)*n*(n+1)/2);
Zip(a, n, b);
while(scanf("%d%d", &i, &j)!=EOF)
{
printf("%d\n", b[Index(i, j)]);
}
free(b);
return 0;
}
输入
输入第一行为正整数n(n<=100),接下来有n行,每行n个整数。
接下来有若干行,每行两个整数x,y(1<=x, y <=n),表示矩阵中的行号和列标。
直到文件结束位置。
输出
对每个x和y,输出该位置的值。
样例输入
5
2 8 1 9 6
8 6 1 9 6
1 1 5 3 2
9 9 3 5 8
6 6 2 8 2
1 2
3 3
2 2
样例输出
8
5
6