# 12078 - Hurry!
## 題解:
直接模擬就可以了
用迴圈去尋找最佳的位子, 然後再用迴圈更新ri和li
## Code:
```c=1
#include <stdio.h>
#define max(a, b) (a > b ? a : b)
#define min(a, b) (a < b ? a : b)
int main(){
int t, n, k;
scanf("%d", &t);
while(t--){
int ans = 0, r[3005] = {0}, l[3005] = {0}, used[3005] = {0};
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++) // initiate
r[i] = n - i, l[i] = i - 1;
while(k--){
int max = -1, idx = 0;
for (int i = 1; i <= n; i++){
if(used[i])
continue;
if(min(r[i], l[i]) > max){
max = min(r[i], l[i]);
idx = i;
}
}
used[idx] = 1;
for (int i = 1; i <= n; i++){
if(i == idx)
r[i] = l[i] = 0;
else if(i < idx && i + r[i] + 1 > idx)
r[i] = idx - i - 1;
else if(i > idx && i - l[i] - 1 < idx)
l[i] = i - idx - 1;
}
ans = idx;
}
printf("%d\n", ans);
}
return 0;
}
```
###### tags: `NTHUOJ`