package com.microsoft.nasa.lev4.controller
import java.util.ArrayList
import java.util.List
import java.util.Random
import java.util.UUID
public class MicrosoftNASAController {
public static void main(String[] args) {
System.out.println("Hello World!")
}
/**
* needs:
* supply: new inputs
* valuable score ,one left score is american astronaulte, right score is from business uropean score
* 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
* @param s
* @return
*/
public static int formingMagicSquare(List<List<Integer>> s) {
if(s==null) {
return 0
}
if(s.isEmpty()) {
return 0
}
int fixedSquareSize=s.size()
if(fixedSquareSize!=3) {
return 0
}
for(List<Integer> intList : s) {
for(Integer intValScore : intList) {
if(intValScore<1 || intValScore>9) {
return 0
}
}
}
List<CustDefMetrixValScore> custDefMetrixValScoreList=buildCustDefMetrixValScoreList(s)
return 0
}
public static List<CustDefMetrixValScore> buildCustDefMetrixValScoreList(List<List<Integer>> intList){
if(intList==null) {
return null
}
if(intList.isEmpty()) {
return null
}
if(intList.size()!=3) {
return null
}
List<CustDefMetrixValScore> custDefMetrixValScoreList=new ArrayList<CustDefMetrixValScore>()
for (int i = 0
List<Integer> intEleList=intList.get(i)
for (int j = 0
Integer intEle=intEleList.get(j)
CustDefMetrixValScore custDefMetrixValScore=new CustDefMetrixValScore()
custDefMetrixValScore.setId(UUID.randomUUID().toString())
custDefMetrixValScore.setName("")
custDefMetrixValScore.setValScoreIndex(i+""+j)
custDefMetrixValScore.setValScore(intEle)
custDefMetrixValScore.setRacingScoreDiff(intEle)
custDefMetrixValScoreList.add(custDefMetrixValScore)
}
}
return custDefMetrixValScoreList
}
public static List<CustDefMetrixValScore> buildRacingScoreDiff(List<CustDefMetrixValScore> custDefMetrixValScoreList) {
if(custDefMetrixValScoreList==null) {
return null
}
if(custDefMetrixValScoreList.isEmpty()) {
return null
}
if(custDefMetrixValScoreList.size()!=3) {
return null
}
List<CustDefMetrixValScore> custDefMetrixValScoreList1=new ArrayList<CustDefMetrixValScore>()
int count=0
Random random=new Random()
while(true) {
for (int i = 0
int randomIndexFro=random.nextInt(custDefMetrixValScoreList.size())
int randomIndexTo=random.nextInt(custDefMetrixValScoreList.size())
int froScore=custDefMetrixValScoreList.get(randomIndexFro).getValScore()
int toScore=custDefMetrixValScoreList.get(randomIndexTo).getValScore()
int scoreDiff=froScore-toScore
if(scoreDiff<1) {
String scoreDiff2PositiveStr=String.valueOf(scoreDiff)
String newScoreDiff2PositiveStr=scoreDiff2PositiveStr.substring(1)
int scoreDiffPositiveCopy=Integer.valueOf(newScoreDiff2PositiveStr)
scoreDiff=scoreDiffPositiveCopy
}
}
count++
if(count>1000000) {
break
}
}
for (int i = 0
// Integer
}
return null
}
public static List<Integer> build2IntArrSequence(List<CustDefMetrixValScore> custDefMetrixValScoreList){
if(custDefMetrixValScoreList==null) {
return null
}
if(custDefMetrixValScoreList.isEmpty()) {
return null
}
if(custDefMetrixValScoreList.size()!=3) {
return null
}
List<Integer> intList=new ArrayList<Integer>()
custDefMetrixValScoreList.forEach(e->{
intList.add(e.getValScore())
})
return intList
}
}
class CustDefMetrixValScore{
private String id
private String name
private String valScoreIndex
private Integer valScore
private Integer racingScoreDiff
public String getId() {
return id
}
public void setId(String id) {
this.id = id
}
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public String getValScoreIndex() {
return valScoreIndex
}
public void setValScoreIndex(String valScoreIndex) {
this.valScoreIndex = valScoreIndex
}
public Integer getValScore() {
return valScore
}
public void setValScore(Integer valScore) {
this.valScore = valScore
}
public Integer getRacingScoreDiff() {
return racingScoreDiff
}
public void setRacingScoreDiff(Integer racingScoreDiff) {
this.racingScoreDiff = racingScoreDiff
}
}