-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path13144.kt
34 lines (32 loc) · 809 Bytes
/
13144.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.io.*
fun main(){
val bw = BufferedWriter(OutputStreamWriter(System.out))
val br = BufferedReader(InputStreamReader(System.`in`))
val N = br.readLine().toInt()
val arr = ArrayList<Int>()
arr.addAll(br.readLine().split(" ").map {it.toInt()})
var i = 0L
var j = 0L
val isIn = Array (100001) { false }
var sum = 0L
while(j < N){
if(i==j) {
isIn[arr[j.toInt()]] = true
j++
}
else {
if (!isIn[arr[j.toInt()]]) {
isIn[arr[j.toInt()]] = true
j++
} else {
sum += j - i
isIn[arr[i.toInt()]] = false
i++
}
}
}
sum += (j-i)*(j-i+1)/2
bw.write("$sum")
bw.flush()
bw.close()
}