JSFiddle - React, Tailwind, and code Playground

by karthick6891

JavaScript

var inputArr=['6','a b c aa d b','1 2 3 4 5 6','3','1 5 caaab','0 4 xyz','2 4 bcdybc'] 
function readLine(){
 return inputArr.shift();
}


/*******copy from here******************/
function Node() {
    this.index = [];
    this.indexH = [];
    this.children = {};
}

function Trie() {
    var root = new Node();
    function add(word, node, index, health) {
        var char, previousHealth = 0, len;
        if (word === '') {
            len = node.index.length;
            if (len) {
                previousHealth = node.indexH[len-1];
            }
            node.index.push(index);
            node.indexH.push(health + previousHealth);
            return;
        }
        char = word[0];
        if (!node.children[char]) {
            node.children[char] = new Node();
        }
        add(word.substr(1), node.children[char], index, health);
    }
    return {
        add: function(word, index, health) {
            add(word, root, index, health);
        },
        getRoot: function() {
            return root;
        }
    }
}

function findIndex(arr, start, end, val) {
    var index = Math.floor((end - start) / 2) + start;
    if (arr[index] === val) return index;
    if (arr[start] === val) return start;
    if (arr[end] === val) return end;
    if (arr[index] > val) {
        end = index;
    } else {
        start = index;
    }
    if (end - start <= 1) {
        if (arr[end] < val) {
            return end;
        }
        return start;
    }
    return findIndex(arr, start, end, val);
}

function main() {
    var n = parseInt(readLine());
    var genes = readLine().split(' ');
    var health = readLine().split(' ');
    health = health.map(Number);
    var s = parseInt(readLine());

    /***************/
    var trie = new Trie();
    var minRating = null;
    var maxRating = null;

    genes.forEach((gene, index) => {
        trie.add(gene, index, health[index]);
    });
    /***************/

    for(var a0 = 0; a0 < s; a0++){
        var...