#include<stdio.h>
#include<queue>
using namespace std;
struct mousemou{
int weight, rank;
}mouse[1010];
queue<int> que;
int main(){
int i, j, np, ng, te, num, group;
scanf("%d%d",&np,&ng);
for(i=0;i<np;i++)scanf("%d",&mouse[i].weight);
for(i=0;i<np;i++){scanf("%d",&te);que.push(te);}
num=np;
while(que.size()>1){
if(num%ng==0)group=num/ng;
else group=num/ng+1;
for(i=0;i<group;i++){
int max=que.front();
for(j=0;j<ng;j++){
if(i*ng+j>=num)break;
int index=que.front();
if(mouse[index].weight>mouse[max].weight)max=index;
mouse[index].rank=group+1;
que.pop();
}
que.push(max);
}
num=group;
}
mouse[que.front()].rank=1;
for(i=0;i<np;i++){printf("%d",mouse[i].rank);if(i<np-1)printf(" ");}
return 0;
}
PAT-A1056
最新推荐文章于 2021-01-26 21:09:52 发布