#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
using namespace std;
struct node{
int w;
int n;
}nn;
int T,N,ATK,x;
vector<node> V;
int dir;
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&N,&ATK);
V.clear();
for(int i=0;i<N;i++){
scanf("%d",&nn.w);
nn.n=i+1;
V.push_back(nn);
}
dir=1;int num=0;
int ans;
int count=1;
while(V.size()>1){
if(count>=N+5){
ans=num;
break;
}
count++;
if(V[num].w>ATK){
V[num].w-=ATK;
num+=dir;
if(num==V.size())
num=0;
else if(num==-1)
num=V.size()-1;
}
else{
V.erase(V.begin()+num);
if(dir==1)
num=num-1;
dir=-dir;
if(num==-1)
num=V.size()-1;
else if(num==V.size())
num=0;
}
}
if(V.size()==1)
ans=0;
printf("%d\n",V[ans].n);
}
return 0;
}
ZOJ 3897 Fiddlesticks
最新推荐文章于 2016-02-14 10:23:00 发布