import java.util.*

fun main(args: Array<String>) {
    val scanner = Scanner(System.`in`)
    val N = scanner.nextLong()
    var sum: Long = 0L
    val AN: List<Long> = (0..N - 1).map { val l = scanner.nextLong();sum += l;return@map l }
    val once = (N * (N + 1)) / 2
    if (sum % once != 0L) {
        println("NO")
        return
    }
    val k: Long = sum / once
    var count: Long = 0
    (0..N - 1).forEach { index ->
        var di =-( AN[((index + 1) % N).toInt()] - AN[index.toInt()] - k)
//        di = -di
//        count += di / N
//        di = di % N
//        count += -di / N
//        di = di % N
//        while (di > 0) {
//            di -= N
//            count += 1
//        }
        if(di>0){
            count+=di/N
            di%=N
        }
        if (di != 0L) {
            println("NO")
            return
        }
    }
    if (k == count) println("YES")
    else {
        println("NO")
    }
}
