C++ Дана прямоугольная матрица размерности MxN. Сформировать вектор В, где: B[I]=1, если элементы I строки составляют строго возрастающую последовательность; B[I]=0 если элементы I строки не составляют строго возрастающую последовательность.
Трехразрядное число содержит вторую степень основания. Это дает возможность сделать оценку верхнего значения основания системы счисления. 9² < √(73) < 8², поэтому система счисления не может иметь основание, большее 8. Четырехразрядное число содержит третью степень основания. Это дает возможность сделать оценку нижнего значения основания системы счисления. 5³ < ∛(73) < 4³, поэтому система счисления не может иметь основание, меньшее 5. Итак, у нас четыре претендента: натуральное n∈[5;8]
Для системы счисления по основанию n получаем уравнение an²+bn+c=73
Для n=8 получим 64a+8b+c=73; a,b,c<8 Понятно, что a=1, тогда 8b+c=9. И тут понятно, что b=1 и тогда с=1. Проверим. 111₈ = 1×8²+1×8+1=64+8+1=73
Нет смысла проверять n=7 и т.д., поскольку нам нужно наибольшее возможное основание.
#include <iostream>
#include <vector>
using namespace std;
void solve(){
int m,n;
cin >> m >> n;
vector<vector<int>> a(m,vector<int>(n));
vector<bool> b(m, true);
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
cin >> a[i][j];
for(int i = 0; i < m; i++)
for(int j = 1; j < n; j++)
if(a[i][j] <= a[i][j-1])
b[i] = false;
for(auto i : b) cout << i << " ";
}
signed main(){
solve();
}