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 ="tarif";
    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 tabl = document.createElement('table');
tabl.id ="potreb";   
tabl.style.width  = '100px';
tabl.style.border = '1px solid black';

// Создаем тело таблицы
var tbod = document.createElement('tbody');
for (var i = 0; i < 1; 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);
}
tbod.appendChild(row);
}
tabl.appendChild(tbod);

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


var tabi = document.createElement('table');
tabi.id ="postav";     
tabi.style.width  = '100px';
tabi.style.border = '1px solid black';

// Создаем тело таблицы
var tbo = document.createElement('tbody');
for (var i = 0; i < 1; i++) {
var ro = 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);
    ro.appendChild(cell);
}
tbo.appendChild(ro);
}
tabi.appendChild(tbo);

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

function inputtable(){
    var table1 = document.getElementById('postav');
    var cells = table1.querySelectorAll('td input');
    var pos=[];
    cells.forEach(function(cell){
        pos.push(parseInt(cell.value, 10));
    });
    console.log(pos);

    var table2 = document.getElementById('potreb');
    var celli = table2.querySelectorAll('td input');
    var pot=[];
    celli.forEach(function(cell){
        pot.push(parseInt(cell.value, 10));
    });
    console.log(pot);



    var table3 = document.getElementById('tarif');
    var rows =table3.querySelectorAll('tr');
        var tari=[];
   
  
   rows.forEach(function(row) {
    var rowData = []; // Создаем временный массив для хранения данных из текущей строки

    // Получаем все ячейки текущей строки
    var cellic = row.querySelectorAll('td input');

    // Проходимся по каждой ячейке и добавляем ее значение во временный массив
    cellic.forEach(function(cell) {
        rowData.push(parseInt(cell.value, 10)); // Преобразуем значение в число и добавляем его во временный массив
    });

    // Добавляем временный массив в основной двумерный массив
    tari.push(rowData);
});
let post = Array.from(pos);
let potr = Array.from(pot);
let tarif = Array.from(tari);

    console.log(tarif);
let n=0;
let m=0;
    for(let i = 0; i < post.length; i++){
        n++;  
    }
    for(let i = 0; i < potr.length; i++){
        m++;   
    } 
    let tarif1= [];
    for(let i = 0; i < n; i++){
        tarif1[i] =[];
        for(let j=0; j<m; j++){
            tarif1[i][j]=0;
        }
    }
    let tar = tarif.slice();
    let sum = 0;
    let count = 0;
    
    while (post.reduce((acc, val) => acc + val, 0) > 0 && potr.reduce((acc, val) => acc + val, 0) > 0) {
        let buffI = 0;
        let buffJ = 0;
        let min = 999999;
    
        for (let i = 0; i < tarif.length; i++) {
            for (let j = 0; j < tarif[i].length; j++) {
                if (tarif[i][j] < min) {
                    if (potr[j] > 0 && post[i] > 0) {
                        buffJ = j;
                        buffI = i;
                        min = tarif[i][j];
                    }
                }
            }
        }
    
        if (post[buffI] >= potr[buffJ]) {
            tar[buffI][buffJ] = tarif[buffI][buffJ];
            tarif1[buffI][buffJ] = potr[buffJ];
            post[buffI] -= potr[buffJ];
            potr[buffJ] = 0;
            sum += tarif1[buffI][buffJ] * min;
            count++;
        } else if (post[buffI] < potr[buffJ] && post[buffI] !== 0) {
            tar[buffI][buffJ] = tarif[buffI][buffJ];
            potr[buffJ] -= post[buffI];
            tarif1[buffI][buffJ] = post[buffI];
            post[buffI] = 0;
            sum += tarif1[buffI][buffJ] * min;
            count++;
        }
    }
    // if(count == vir){
    //     console.log("опорный план вырожденный");
    // }
    // else{
    //     console.log("опорный план невырожденный");
    // }
    
    
    console.log("Целевая функция = " + sum);
    console.log("Матрица совершенных поставок:");
    for (let i = 0; i < tarif1.length; i++) {
        console.log(tarif1[i].join(" \t "));
    }
    
   

    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 < n; i++) {
    var rowa = document.createElement('tr');
    for (var j = 0; j < m; j++) {
        var cell = document.createElement('td');
         cell.appendChild(document.createTextNode(tarif1[i][j]));
        rowa.appendChild(cell);
    }
    tbodyy.appendChild(rowa);
}
tablee.appendChild(tbodyy);

// Добавляем таблицу в блок с id "tableContainer"
document.getElementById('otvet').appendChild(tablee);
document.getElementById("result").textContent = sum;
}
function handleFile() {
    const fileInput = document.getElementById('csvFileInput');
    const file = fileInput.files[0];
    const reader = new FileReader();
  
    reader.onload = function(event) {
      const content = event.target.result;
      processData(content);
    };
  
    reader.readAsText(file);
  }
function processData(content) {
    const lines = content.split('\n');
    const header = lines[0].split(';');
    let postt = [];
    let pottr = [];
    let tarif = [];
  
    for (let i = 1; i < lines.length; i++) {
      if (lines[i].trim() !== '') {
        const values = lines[i].split(';').map(Number);
        if (i === 1) {
            postt.push(values);
        } else if (i === 2) {
            pottr.push(values);
        } else {
            tarif.push(values);
        }
      }
    }
  
    console.log('Первый числовой массив:', postt);
    console.log('Второй числовой массив:', pottr);
    console.log('Двумерный массив:', tarif);

    let n=0;
    let m=0;
    for(let i =0; i< postt.length;i++){
        let s=0;
        for(let j =0; j<postt[i].length;j++ ){
              s++;
        }
        n =s;
    }
    for(let i =0; i< pottr.length;i++){
        let ss=0;
        for(let j =0; j<pottr[i].length;j++ ){
              ss++;
        }
        m =ss;
    }
    


    console.log(n);
    console.log(m);
    let potr=[];
    for(let i =0; i< m;i++){
        potr[i]=pottr[0][i];
    }
    console.log(potr);
    let post=[];
    for(let i =0; i< n;i++){
        post[i]=postt[0][i];
    }
    let tarif1= [];
    for(let i = 0; i < n; i++){
        tarif1[i] =[];
        for(let j=0; j<m; j++){
            tarif1[i][j]=0;
        }
    }
    console.log(post);
    console.log(tarif1);
    let tar = tarif.slice();
    console.log(tar);
    let sum = 0;
    let count = 0;
    
    while (post.reduce((acc, val) => acc + val, 0) > 0 && potr.reduce((acc, val) => acc + val, 0) > 0) {
        let buffI = 0;
        let buffJ = 0;
        let min = 999999;
    
        for (let i = 0; i < tarif.length; i++) {
            for (let j = 0; j < tarif[i].length; j++) {
                if (tarif[i][j] < min) {
                    if (potr[j] > 0 && post[i] > 0) {
                        buffJ = j;
                        buffI = i;
                        min = tarif[i][j];
                    }
                }
            }
        }
    
        if (post[buffI] >= potr[buffJ]) {
            tar[buffI][buffJ] = tarif[buffI][buffJ];
            tarif1[buffI][buffJ] = potr[buffJ];
            post[buffI] -= potr[buffJ];
            potr[buffJ] = 0;
            sum += tarif1[buffI][buffJ] * min;
            count++;
        } else if (post[buffI] < potr[buffJ] && post[buffI] !== 0) {
            tar[buffI][buffJ] = tarif[buffI][buffJ];
            potr[buffJ] -= post[buffI];
            tarif1[buffI][buffJ] = post[buffI];
            post[buffI] = 0;
            sum += tarif1[buffI][buffJ] * min;
            count++;
        }
    }
    // if(count == vir){
    //     console.log("опорный план вырожденный");
    // }
    // else{
    //     console.log("опорный план невырожденный");
    // }
    
    
    console.log("Целевая функция = " + sum);
    console.log("Матрица совершенных поставок:");
    for (let i = 0; i < tarif1.length; i++) {
        console.log(tarif1[i].join(" \t "));
    }
    
   

    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 < n; i++) {
    var rowa = document.createElement('tr');
    for (var j = 0; j < m; j++) {
        var cell = document.createElement('td');
         cell.appendChild(document.createTextNode(tarif1[i][j]));
        rowa.appendChild(cell);
    }
    tbodyy.appendChild(rowa);
}
tablee.appendChild(tbodyy);

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