[R41A] 出题组 3


数据规模:1n,x,y,k1001 \le n, x, y, k \le 1001yn1 \le y \le nx<kx < k

思路

xx 场比赛由出题组 yy 出题后,每经过一场比赛,出题组编号加 11。编号超过 nn 时回到 11,因此一共前进 kxk - x 步。

先把编号转为从 00 开始,再取模即可:

ans=(y1+kx)modn+1ans = (y - 1 + k - x) \bmod n + 1

复杂度

时间复杂度 O(1)O(1),空间复杂度 O(1)O(1)

仓颉实现

import std.convert.*
import std.env.*

main(): Int64 {
    let reader = getStdIn()
    let values = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p: String => Int64.parse(p) })
    let n = values[0]
    let x = values[1]
    let y = values[2]
    let k = values[3]

    let answer = (y - 1 + k - x) % n + 1
    println(answer)
    return 0
}