package main
import (
"fmt"
"os"
"bufio"
"strconv"
)
const (
datapath = "crossing.txt"
datasize = 3141560
)
func main() {
path := datapath
f, err := os.Open(path)
if err != nil {
panic(err)
}
who := make([]int, datasize, datasize) // who is where index
where := make([]int, datasize, datasize) // where is who index
scanner := bufio.NewScanner(f)
datacnt := 1
for scanner.Scan() {
n, err := strconv.Atoi(scanner.Text())
if err != nil {
panic(err)
}
who[datacnt] = n
where[who[datacnt]] = datacnt
datacnt++
}
f.Close()
fmt.Println("cnt =", datacnt)
nCross := 0
for i:=1; i<datacnt; i++ {
curIdx := who[i]
for j:=0; j<curIdx; j++ {
if where[j] > i {
nCross++
}
}
}
fmt.Println("cross =", nCross)
}