function generate(){
    var rows = document.getElementById("row").value;
    console.log(rows);
    var cols = document.getElementById("col").value;
    console.log(cols);
    var table = document.createElement('table');
    table.id ="plan";
    table.style.width  = '100px';
    table.style.border = '1px solid black';
// Создаем тело таблицы
var tbody = document.createElement('tbody');
for (var i = 0; i < rows; i++) {
    var row = document.createElement('tr');
    for (var j = 0; j < cols; j++) {
        var cell = document.createElement('td');
        var input = document.createElement('input');
        input.type = "number";
        input.placeholder="поставка";
        cell.appendChild(input);
        row.appendChild(cell);
    }
    tbody.appendChild(row);
}
table.appendChild(tbody);

// Добавляем таблицу в блок с id "tableContainer"
document.getElementById('table_gen').appendChild(table);




var table1 = document.createElement('table');
table1.id ="tarif";
table1.style.width  = '100px';
table1.style.border = '1px solid black';
// Создаем тело таблицы
var tbody1 = document.createElement('tbody');
for (var i = 0; i < rows; i++) {
var row = document.createElement('tr');
for (var j = 0; j < cols; j++) {
    var cell = document.createElement('td');
    var input = document.createElement('input');
    input.type = "number";
    input.placeholder="тариф";
    cell.appendChild(input);
    row.appendChild(cell);
}
tbody1.appendChild(row);
}
table1.appendChild(tbody1);

// Добавляем таблицу в блок с id "tableContainer"
document.getElementById('table_tarif').appendChild(table1);

}


function inputtable(){
    var table = document.getElementById('plan');
    var rows =table.querySelectorAll('tr');
        var p=[]; 
   rows.forEach(function(row) {
    var rowData = [];
    var cellic = row.querySelectorAll('td input');
    cellic.forEach(function(cell) {
        rowData.push(parseInt(cell.value, 10));
    });
    p.push(rowData);
});
let op = Array.from(p);
    console.log(op);



    var table1 = document.getElementById('tarif');
    var rows =table1.querySelectorAll('tr');
        var t=[]; 
   rows.forEach(function(row) {
    var rowData = [];
    var cellic = row.querySelectorAll('td input');
    cellic.forEach(function(cell) {
        rowData.push(parseInt(cell.value, 10));
    });
    t.push(rowData);
});
let cost2 = Array.from(t);
    console.log(cost2);
    var roww = document.getElementById("row").value;
    let rowws = parseInt(roww)+1;
    console.log(rowws);
    var ccol = document.getElementById("col").value;
    let ccols = parseInt(ccol)+1;

    console.log(ccols);
let cost =[];
    for(let i = 0; i < rowws; i++){
        cost [i] =[];
        for(let j=0; j<ccols; j++){
            if(i<rowws -1 && j <ccols -1){
                if(op[i][j]!==0){
                    cost [i][j]= cost2[i][j];
                }
                else if(op[i][j]===0){
                cost [i][j]=0;
            }
            
            }
            else if(i == rowws-1){
                cost [i][j]=0;
            }
            else if(j == ccols-1){
                cost [i][j]=0;
            }
        }
    }
    console.log(cost);
    let  ved_potencial=0;
    let posled1 = 0; // to find the last cell of the column
    let posled = 0;
    let svoboda = 0;
    
    for (let i = 0; i < cost2.length; i++) {
        for (let j = 0; j < cost2[0].length; j++) {
            if (op[i][j] !== 0) {
                cost2[i][j] = 0;
                svoboda++;
            }
        }
    }
    
    svoboda= svoboda- 1;
    
    for (let i = 0; i < cost.length; i++) {
        let lastCellRow = 0; // to find the last cell of the row
        for (let j = 0; j < cost[0].length; j++) {
            lastCellRow++;
        }
        posled = lastCellRow;
        posled1++;
    }
    
    let pot = [];
    for(let i=0; i< posled1+1; i++){
        pot[i]=[];
        for(let j=0; j< posled+1; j++){
            if (i === 0 && j === posled) {
                pot[i][j] = 0;
    
                ved_potencial = pot[i][j];
            } else {
                pot[i][j] = 0;
            }
        }
    }
    
    console.log(pot);
    
   
    let b = 0;
    while (b < posled1 + posled) {
        for (let i = 0; i < posled1 + 1; i++) {
            for (let j = 0; j < posled + 1; j++) {
                if (j < posled && i < posled1) {
                    if (cost[i][j] !== 0) {
                        let ii = 0;
                        let jj = 0;
                        if (cost[0][j] !== 0) {
                            pot[posled1][j] = cost[i][j] - ved_potencial;
                            ii = posled1;
                            jj = j;
                            cost[0][j] = 0;
                        }
                        if (pot[posled1][j] !== 0 && pot[i][posled] === 0 && i !== ved_potencial) {
                            pot[i][posled] = cost[i][j] - pot[posled1][j];
                            cost[0][j] = 0;
                        }
                        if (pot[posled1][j] === 0 && pot[i][posled] !== 0 && i !== ved_potencial) {
                            pot[posled1][j] = cost[i][j] - pot[i][posled];
                            cost[0][j] = 0;
                        }
                    }
                }
            }
        }
        b++;
    }
    
    console.log("Матрица потенциалов");
    console.log();
    for (let i = 0; i < posled1 + 1; i++) {
        for (let j = 0; j < posled + 1; j++) {
            console.log(pot[i][j] + " ");
        }
        console.log();
    }
    console.log("Оценка свободных ячеек: ");
let kolvo_polosh = 0;
for (let i = 0; i < posled1 + 1; i++) {
    for (let j = 0; j < posled + 1; j++) {
        if (j < posled && i < posled1) {

            if (cost2[i, j] !== 0) {
                let schet = (pot[posled1, j] + pot[i, posled]) - cost2[i, j];
                console.log("( " + pot[posled1, j] + " + " + pot[i, posled] + " ) -" + cost2[i, j] + " = " + schet);
                kolvo_polosh += optim(schet);
            }
        }
    }
}
if (kolvo_polosh === 0) {
    console.log("Опорный план оптимален");
    let str='Опорный план оптимален';
    document.getElementById("result").textContent += str;
} else if (kolvo_polosh > 0) {
    console.log("Опорный план не оптимален");
    let str='Опорный план не оптимален';
    document.getElementById("result").textContent += str;
    console.log("Количество положительных чисел : " + kolvo_polosh);
}
    var tablee = document.createElement('table');
    tablee.id ="otvet";
    tablee.style.width  = '100px';
    tablee.style.border = '1px solid black';

// Создаем тело таблицы
var tbodyy = document.createElement('tbody');
for (var i = 0; i <  posled1 + 1; i++) {
    var rowa = document.createElement('tr');
    for (var j = 0; j <posled + 1 ; j++) {
        var cell = document.createElement('td');
         cell.appendChild(document.createTextNode(pot[i][j]));
        rowa.appendChild(cell);
    }
    tbodyy.appendChild(rowa);
}
tablee.appendChild(tbodyy);

// Добавляем таблицу в блок с id "tableContainer"
document.getElementById('otvetik').appendChild(tablee);

}

function optim(schet) {
    let n = schet;
    if (schet > 0) {
        return 1;
    } else {
        return 0;
    }
}

module.exports = optim;