packagecom.microsoft.nasa.lev4.controller;

importjava.util.ArrayList;

importjava.util.List;

importjava.util.Random;

importjava.util.UUID;

publicclassMicrosoftNASAController {

publicstaticvoidmain(String[]args) {

System.out.println("Hello World!");

}

/**

* needs:

* supply: new inputs

* valuable score ,one left score isamericanastronaulte, right score is from businessuropeanscore

* another score is stable house valuable score

* valuable score is from valueScore 1, and limit at 9

* outputs:

* limit valuable score infinite cost is top 1 means this is lowest cost dollar for this special launch

* more detail:

* fixed inputs:

* $s=[[5,3,4],[1,5,8],[6,4,2]]

* math matrix is this: square and n(row&column size)=3

* 5 3 4

* 1 5 8

* 6 4 2

* racing top 1 team :

* outputs:

* [8,9,7] replace group [5,8,4]

* magic math matrix is

* 8 3 4

* 1 5 9

* 6 7 2

* result is:

* |5-8|+|8-9|+|4-7|=7

*@params

*@return

*/

publicstaticintformingMagicSquare(List<List<Integer>>s) {

if(s==null) {

return0;

}

if(s.isEmpty()) {

return0;

}

intfixedSquareSize=s.size();

if(fixedSquareSize!=3) {

return0;

}

for(List<Integer>intList:s) {

for(IntegerintValScore:intList) {

if(intValScore<1 ||intValScore>9) {

return0;

}

}

}

List<CustDefMetrixValScore>custDefMetrixValScoreList=buildCustDefMetrixValScoreList(s);

return0;

}

publicstaticList<CustDefMetrixValScore> buildCustDefMetrixValScoreList(List<List<Integer>>intList){

if(intList==null) {

returnnull;

}

if(intList.isEmpty()) {

returnnull;

}

if(intList.size()!=3) {

returnnull;

}

List<CustDefMetrixValScore>custDefMetrixValScoreList=newArrayList<CustDefMetrixValScore>();

for(inti= 0;i<intList.size();i++) {

List<Integer>intEleList=intList.get(i);

for(intj= 0;j<intEleList.size();j++) {

IntegerintEle=intEleList.get(j);

CustDefMetrixValScorecustDefMetrixValScore=newCustDefMetrixValScore();

custDefMetrixValScore.setId(UUID.randomUUID().toString());

custDefMetrixValScore.setName("");

custDefMetrixValScore.setValScoreIndex(i+""+j);

custDefMetrixValScore.setValScore(intEle);

custDefMetrixValScore.setRacingScoreDiff(intEle);

custDefMetrixValScoreList.add(custDefMetrixValScore);

}

}

returncustDefMetrixValScoreList;

}

publicstaticList<CustDefMetrixValScore> buildRacingScoreDiff(List<CustDefMetrixValScore>custDefMetrixValScoreList) {

if(custDefMetrixValScoreList==null) {

returnnull;

}

if(custDefMetrixValScoreList.isEmpty()) {

returnnull;

}

if(custDefMetrixValScoreList.size()!=3) {

returnnull;

}

List<CustDefMetrixValScore>custDefMetrixValScoreList1=newArrayList<CustDefMetrixValScore>();

intcount=0;

Randomrandom=newRandom();

while(true) {

for(inti= 0;i<custDefMetrixValScoreList.size();i++) {

intrandomIndexFro=random.nextInt(custDefMetrixValScoreList.size());

intrandomIndexTo=random.nextInt(custDefMetrixValScoreList.size());

intfroScore=custDefMetrixValScoreList.get(randomIndexFro).getValScore();

inttoScore=custDefMetrixValScoreList.get(randomIndexTo).getValScore();

intscoreDiff=froScore-toScore;

if(scoreDiff<1) {

StringscoreDiff2PositiveStr=String.valueOf(scoreDiff);

StringnewScoreDiff2PositiveStr=scoreDiff2PositiveStr.substring(1);

intscoreDiffPositiveCopy=Integer.valueOf(newScoreDiff2PositiveStr);

scoreDiff=scoreDiffPositiveCopy;

}

}

count++;

if(count>1000000) {

break;

}

}

for(inti= 0;i<custDefMetrixValScoreList.size();i++) {

// Integer

}

returnnull;

}

publicstaticList<Integer> build2IntArrSequence(List<CustDefMetrixValScore>custDefMetrixValScoreList){

if(custDefMetrixValScoreList==null) {

returnnull;

}

if(custDefMetrixValScoreList.isEmpty()) {

returnnull;

}

if(custDefMetrixValScoreList.size()!=3) {

returnnull;

}

List<Integer>intList=newArrayList<Integer>();

custDefMetrixValScoreList.forEach(e->{

intList.add(e.getValScore());

});

returnintList;

}

}

classCustDefMetrixValScore{

privateStringid;

privateStringname;

privateStringvalScoreIndex;

privateIntegervalScore;

privateIntegerracingScoreDiff;

publicString getId() {

returnid;

}

publicvoidsetId(Stringid) {

this.id=id;

}

publicString getName() {

returnname;

}

publicvoidsetName(Stringname) {

this.name=name;

}

publicString getValScoreIndex() {

returnvalScoreIndex;

}

publicvoidsetValScoreIndex(StringvalScoreIndex) {

this.valScoreIndex=valScoreIndex;

}

publicInteger getValScore() {

returnvalScore;

}

publicvoidsetValScore(IntegervalScore) {

this.valScore=valScore;

}

publicInteger getRacingScoreDiff() {

returnracingScoreDiff;

}

publicvoidsetRacingScoreDiff(IntegerracingScoreDiff) {

this.racingScoreDiff=racingScoreDiff;

}

}