繞一圈回來
0.5s 256M請實作以下函式:
int wrap_index(int x, int n);
有 \(n\) 個格子排成一圈,編號從 \(0\) 到 \(n-1\);編號 \(n-1\) 的右邊接回編號 \(0\)。
從編號 \(0\) 出發往右走 \(x\) 步。若 \(x\) 是負數,表示往左走 \(|x|\) 步。請回傳最後停在的格子編號。
換句話說,答案是 \(x\) 除以 \(n\) 的循環餘數,而且一定要介於 \(0\) 到 \(n-1\)。請特別注意,C++ 的 % 在左運算元是負數時可能得到負數。
你只需要實作指定函式,不需要撰寫 main 或處理輸入與輸出。
輸入格式
本節描述評測程式如何呼叫你的函式。
第一行有一個正整數 \(T\),代表函式呼叫次數。
接下來 \(T\) 行,每行有兩個整數 \(x,n\),代表一次函式呼叫的參數。
限制
- \(1 \le T \le 100\)
- \(-10^9 \le x \le 10^9\)
- \(1 \le n \le 10^9\)
輸出格式
對每次函式呼叫,評測程式輸出一行整數,表示函式回傳值。
範例輸入
6
7 5
-1 5
-7 5
10 5
0 1
-1000000000 7
範例輸出
2
4
3
0
0
1