/*
矩阵(压缩存储)
使用场景:
矩阵的阶数加高 但是存在大量相同的元素或者是零元素
解决方法:
对相同的数据只分配一份空间 对于零元素不分配空间
*/
/*对称矩阵*/
/*对称矩阵实例
{
{1,2,3,4}
{2,2,2,1}
{3,2,3,1}
{4,1,1,4}
}
*/
#include <iostream>
using namespace std;
void Save(int arr[][4] , int n,int* &new_arr)
{
new_arr = new int[n*(n+1)/2+1];
int k = 1;
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
new_arr[k++] = arr[i][j];
}
}
/*
for(int i =1 ;i<= n*(n+1)/2 ;i++){
cout<<new_arr[i]<<" ";
}
cout<<endl;
*/
}
void Find(int *arr,int i,int j,int &Result)
{
Result = arr[i+j-1];
}
int main()
{
int arr[][4] = {
{1,2,3,4},
{2,2,2,1},
{3,2,3,1},
{4,1,1,4}
};
int* new_arr = NULL;
Save(arr,4,new_arr);
int Result = 0;
int i,j;
while(cin>>i>>j){
if(i<1 || i>4 || j<1|| j>4) continue;
else{
Find(new_arr,i,j,Result);
cout<<Result<<endl;
}
}
system("pause");
return 0;
}