#if os(Linux)
import Glibc
#else
import Darwin.C
#endif

let INPUT = stdin

func scanInts(count: Int) -> [Int] {
    let format: String
    switch count {
        case 1: format = "%lld"
        case 2: format = "%lld %lld"
        case 3: format = "%lld %lld %lld"
        case 4: format = "%lld %lld %lld %lld"
        case 5: format = "%lld %lld %lld %lld %lld"
        case 6: format = "%lld %lld %lld %lld %lld %lld"
        default: format = repeatElement("%lld", count: count).joined(separator: " ")
    }
    let ptr = UnsafeMutablePointer<CLongLong>.allocate(capacity: count)
    let ptrArray = Array(ptr ..< ptr+count)
    let read = withVaList(ptrArray) {
        vfscanf(INPUT, format, $0)
    }
    assert(read == count)
    return ptrArray.map { Int($0.pointee) }
}
func scanInt() -> Int {
    scanInts(count: 1)[0]
}
func scanIntPair() -> (Int, Int) {
    let a: [Int] = scanInts(count: 2)
    return (a[0], a[1])
}

//=============================================================================

let N = scanInt()
var sumE = 0
for _ in 1..<N {
    var (u, v) = scanIntPair()
    if u > v { swap(&u, &v) }
    sumE += u * (N-v+1)
}

let sumV = N*(N+1)*(N+2) / 6
print(sumV - sumE)
