Поиск элемента в матрице разреженного строчного формата

Вячеслав Макаров

Привет!
Есть квадратная матрица, после считывания представляется в разреженном строчном формате.
где AN-ненулевой элемент, JA-столбец текущего элемента, так же ненулевого, IA - индекс неулевого элемента, с которого начинается строка.
Я понимаю, как должен выглядить массив-матрица в таком виде, но задача в том, чтобы по вводу индексов строки и столбца, мне выводился элемент, соответствующий эим индексам. Все строится как раза на AN,JA,IA. Помогите, пожалуйста с реализацией этой задачи. Я не пойму как получить элемент AN[i] вводя IA и JA элементы
объявление и определение переменных и массивов:
```
const unsigned short n = 50;
const unsigned short m = 50;
const unsigned short amt = n*m;

    cout << endl << endl;
    int AN[amt] = { 0 };
    int JA[amt] = { 0 };
    int IA[n] = { 0 };
    int AI[n] = { 0 };
    int k = 0;
    int x = 0;
    int y = 0;
    int G = 0;

Заполнение массивов матрицей, считанной из файла



//создане элементов матрицы AN, JA, IA 
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                if (Matrix[i][j] != 0)
                {
                    AN[k] = Matrix[i][j];
                    JA[k] = j;
                    IA[k] = i;
                    AI[k] = i;
                    k++;
                    col += 1;
                }
                IA[0] = 0;
                IA[i + 1] = col;
            }
        }


в коде далее никаких манипуляций с этими массивами не происходит, лишь вывод 

вот если надо 


cout << endl
<< "AN элемент = ";// строчный формат матрицы
for (int i = 0; i < amt; i++)
if (AN[i] > 0)
{
cout << AN[i] << " ";
G += AN[i] = 1;
}

        cout << endl
            << "JA столбец = ";//в какой строке находится текущий элемент
        for (int i = 0; i < amt; i++)
            if (AN[i] > 0)
                cout << JA[i] + 1 << " ";

        cout << endl
            << "IA элемент = "; //элемент, с которого начинется каждая строка и Колличество ненулевых элементов (G) + 1

        for (int i = 0; i < n; i++)
        {


            cout << IA[i] + 1 << " ";
        }
        cout << G + 1 << endl << endl;
1 чел.