﻿// JScript File
function myPrintDiff(C, X, Y, i, j){
    var t = timer();
    var diffA = [i+j];
    var cnt = 0;
    while((i>0)||(j>0)){
        if ((i > 0) && (j > 0) && (X[i] == Y[j])){
            diffA[cnt]=(" "+X[i]);
            i--;
            j--;
            cnt++;
        }
        else{
            if ((j > 0) && ((i == 0) || (C[i][j-1] >= C[i-1][j]))){
                diffA[cnt]=("<span class='instext'>" + " " + Y[j]+"</span>");
                j--;
                cnt++;
            }
            else if ( (i > 0) && ((j == 0) || (C[i][j-1] < C[i-1][j])) ){
                diffA[cnt]=("<span class='deltext'>" + " "+ X[i]+"</span>");
                i--;
                cnt++;
            }
        }
    }
    diffA.reverse();
    return diffA.join("");
}
        
        
function lcs_length(arrayA, arrayB){
    var aL = arrayA.length;
    var bL = arrayB.length;
    //begining
   /* while ((startA <= endA)&&(startB <= endB)&&(arrayA[startA] == arrayB[startB])){
        startA++;
        startB++;
    }
    //end
    while ((startA <= endA)&&(startB <= endB)&&(arrayA[endA] == arrayB[endB])){
        endA--;
        endB--;
    }
    alert("endA:"+endA);
    alert("startA:"+startA);
    alert("endB:"+endB);
    alert("startB:"+startB);
    aL = endA - startA;
    bL = endB - startB; */
    var c = new Array(aL);
    for (var i=0; i<aL; i++){
        c[i] = new Array(bL);
        for (var j = 0; j < bL; j++){
            c[i][j] = 0;
        }
    }
    /*
        criar dicionarios
    */
    for(i = 1; i < aL; i++){
        for (var j = 1; j < bL; j++){
            if (arrayA[i] === arrayB[j])
                c[i][j] = c[i-1][j-1] + 1;
            else
                c[i][j] = Math.max(c[i][j-1], c[i-1][j]);
        }
    }
    return c;
}



