CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:lutrarutra
Submission time:2016-10-09 00:58:37 +0300
Language:Scala
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.41 s1details
#20.54 s2details
#3--3details

Code

import scala.collection.mutable._

/**
 * @author lutrarutra
 */
object jarjestys extends App {
  
  val n = scala.io.StdIn.readLine().toInt
  var s = scala.io.StdIn.readLine().split(" ").toBuffer
  var arr: Buffer[Int] = Buffer()
  
  var i = ""
  for(i <- s){
    arr += i.toInt
  }
  

  
  def findBiggest(a: Buffer[Int]): Int = {
    
    var biggest = 0;
    var obj = 0
    
    for(obj <- a){
      biggest = math.max(biggest, obj.toInt)
    }
    biggest
  }
  
  def lol(): (Int, String) = {
    var counter = 0
    var tempBiggest = 0
    var tempArr = arr
    var sumstr = ""
    var temp = 0
    
    while(true){
      
      tempBiggest = findBiggest(tempArr)
      
      if(tempBiggest == 1){
        return (counter, sumstr)
      }
      
      var indexOfTheBiggest = tempArr.indexOf(tempBiggest)
      
      if(indexOfTheBiggest == tempArr.length -1){
        tempArr.remove(indexOfTheBiggest)
      }
      
      else if (indexOfTheBiggest != 0){
        temp = tempBiggest
        tempArr(indexOfTheBiggest) = tempArr(0)
        tempArr(0) = temp
        counter += 1
        sumstr += indexOfTheBiggest + 1 + " "
      }
      
      indexOfTheBiggest = tempArr.indexOf(tempBiggest)
      
      if (indexOfTheBiggest == 0){
        temp = tempBiggest
        tempArr(0) = tempArr(tempArr.length-1)
        tempArr(tempArr.length-1) = temp
        counter += 1
        sumstr += tempArr.length + " "
      }
      
    }
    
    return(0, " ")
    
  }
  var tuple = lol()
  println(tuple._1)
  println(tuple._2)
}

Test details

Test 1

Group: 1

Verdict:

input
10
9 3 4 7 6 5 10 2 8 1

correct output
32
10 10 9 10 9 8 7 9 4 2 1 4 5 2...

user output
14
7 10 7 9 8 4 7 5 6 5 3 4 2 3 

Test 2

Group: 2

Verdict:

input
1000
650 716 982 41 133 1000 876 92...

correct output
3984
207 207 206 207 128 127 126 12...

user output
1974
6 1000 97 999 132 998 797 997 ...

Test 3

Group: 3

Verdict:

input
100000
94703 47808 62366 31885 7091 8...

correct output
399956
98676 98676 98675 98676 62994 ...

user output
(empty)