#include <iostream>
void print_portrait(int *ia, int *ja, int lines); //выводит список ненулевых елементов
//(для проверки)
bool check_element(int *ia, int *ja, int line, int row); //Возвращает истину если елемент
//в строке line и столбце row
//не нулевой
int main() {
int ia[] { 0, 3, 3, 5}; //Масив с позициями начала строки
int ja[] { 1, 3, 7, 5, 7}; //Масив с номерами столбцов ненулевых елементов
print_portrait(ia, ja, 4);
std::cout << check_element(ia, ja, 0, 0) << std::endl
<< check_element(ia, ja, 0, 1) << std::endl
<< check_element(ia, ja, 0, 6) << std::endl
<< check_element(ia, ja, 0, 7) << std::endl
<< check_element(ia, ja, 2, 7) << std::endl
<< check_element(ia, ja, 2, 8) << std::endl;
return 0;
}
void print_portrait(int *ia, int *ja, int lines)
{
for (int i{}; i < lines; i++)
for(int j{ ia[i] }; j < ia[i+1]; j++)
std::cout << i << ':' << ja[j] << " - not zero" << std::endl;
}
bool check_element(int *ia, int *ja, int line, int row)
{
for(int j{ ia[line] }; j < ia[line+1]; j++)
if (ja[j] == row) return true;
return false;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBwcmludF9wb3J0cmFpdChpbnQgKmlhLCBpbnQgKmphLCBpbnQgbGluZXMpOwkvL9Cy0YvQstC+0LTQuNGCINGB0L/QuNGB0L7QuiDQvdC10L3Rg9C70LXQstGL0YUg0LXQu9C10LzQtdC90YLQvtCyCgkJCQkJCQkJCQkJCQkvLyjQtNC70Y8g0L/RgNC+0LLQtdGA0LrQuCkKCmJvb2wgY2hlY2tfZWxlbWVudChpbnQgKmlhLCBpbnQgKmphLCBpbnQgbGluZSwgaW50IHJvdyk7IAkvL9CS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40YHRgtC40L3RgyDQtdGB0LvQuCDQtdC70LXQvNC10L3RggoJCQkJCQkJCQkJCQkJCQkvL9CyINGB0YLRgNC+0LrQtSBsaW5lINC4INGB0YLQvtC70LHRhtC1IHJvdwoJCQkJCQkJCQkJCQkJCQkvL9C90LUg0L3Rg9C70LXQstC+0LkKCmludCBtYWluKCkgewoKCWludCBpYVtdIHsgMCwgMywgMywgNX07CQkJLy/QnNCw0YHQuNCyINGBINC/0L7Qt9C40YbQuNGP0LzQuCDQvdCw0YfQsNC70LAg0YHRgtGA0L7QutC4CglpbnQgamFbXSB7IDEsIDMsIDcsIDUsIDd9OwkJLy/QnNCw0YHQuNCyINGBINC90L7QvNC10YDQsNC80Lgg0YHRgtC+0LvQsdGG0L7QsiDQvdC10L3Rg9C70LXQstGL0YUg0LXQu9C10LzQtdC90YLQvtCyCgkKCXByaW50X3BvcnRyYWl0KGlhLCBqYSwgNCk7CgkKCXN0ZDo6Y291dAk8PCBjaGVja19lbGVtZW50KGlhLCBqYSwgMCwgMCkgPDwgc3RkOjplbmRsCgkJCQk8PCBjaGVja19lbGVtZW50KGlhLCBqYSwgMCwgMSkgPDwgc3RkOjplbmRsCgkJCQk8PCBjaGVja19lbGVtZW50KGlhLCBqYSwgMCwgNikgPDwgc3RkOjplbmRsCgkJCQk8PCBjaGVja19lbGVtZW50KGlhLCBqYSwgMCwgNykgPDwgc3RkOjplbmRsCgkJCQk8PCBjaGVja19lbGVtZW50KGlhLCBqYSwgMiwgNykgPDwgc3RkOjplbmRsCgkJCQk8PCBjaGVja19lbGVtZW50KGlhLCBqYSwgMiwgOCkgPDwgc3RkOjplbmRsOwoJCglyZXR1cm4gMDsKfQoKCgp2b2lkIHByaW50X3BvcnRyYWl0KGludCAqaWEsIGludCAqamEsIGludCBsaW5lcykKewoJZm9yIChpbnQgaXt9OyBpIDwgbGluZXM7IGkrKykKCQlmb3IoaW50IGp7IGlhW2ldIH07IGogPCBpYVtpKzFdOyBqKyspCgkJCXN0ZDo6Y291dCA8PCBpIDw8ICc6JyA8PCBqYVtqXSA8PCAiIC0gbm90IHplcm8iIDw8IHN0ZDo6ZW5kbDsKfQoKYm9vbCBjaGVja19lbGVtZW50KGludCAqaWEsIGludCAqamEsIGludCBsaW5lLCBpbnQgcm93KQp7Cglmb3IoaW50IGp7IGlhW2xpbmVdIH07IGogPCBpYVtsaW5lKzFdOyBqKyspCgkJaWYgKGphW2pdID09IHJvdykgcmV0dXJuIHRydWU7CglyZXR1cm4gZmFsc2U7Cn0=