原题
http://codeforces.com/contest/450/problem/A
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <ctype.h>
#include <string.h>
#include <string>
#include <limits.h>
#include <algorithm>
#include <iostream>
#include <stack>
#include <queue>
#include <deque>
#include <set>
using namespace std;
int n,m;
struct node{
int num;
int sum;
}f;
//void f(){
// queue<node>q;
// node front,rear;
// front.
// q.push()
//}
int main(){
int i;
queue<node>q;
while(~scanf("%d%d",&n,&m)){
for(i=0;i<n;i++){
scanf("%d",&f.sum);
f.num = i+1;
q.push(f);
}
/*for(i=0;i<n;i++){
if(i == 0){
start.sum = node[i].sum;
start.num = node[i].num;
break;
}
}
for(i=0;i<n;i++){
p.push(node);
}*/
int ans;
node front,rear;
while(!q.empty()){
front = q.front();
q.pop();
rear = front;
ans = front.num;
if(m < front.sum){
rear.sum = front.sum-m;
rear.num = front.num;
q.push(rear);
}
}
printf("%d\n",ans);
}
return 0;
}
/*queue<int>q;
int main(){
int n,m;
int num,i;
while(~scanf("%d%d",&n,&m)){
for(i=0;i<n;i++){
scanf("%d",&num);
q.push(num);
}
while(!q.empty()){
ans = q.front();
if(ans <= m){
q.pop();
}
else{
q.push(ans-m);
}
}
}
}*/