#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
struct mouse
{
int weight;
int r;
}mouse[1010];
queue<int> q;
int main()
{
int np,ng;
scanf("%d%d",&np,&ng);
for(int i=0;i<np;i++)
{
scanf("%d",&mouse[i].weight);
}
int num;
for(int i=0;i<np;i++)
{
scanf("%d",&num);
q.push(num);
}
int group;
int temp=np;
while(q.size()!=1)
{
if(temp%ng==0)
group=temp/ng;
else group=temp/ng+1;
for(int i=0;i<group;i++)
{
int k=q.front();//最重老鼠编号
for(int j=0;j<ng;j++)
{
if((j+i*ng)>=temp)
break;
int front=q.front();
if(mouse[front].weight>mouse[k].weight)
{
k=front;
}
mouse[front].r=group+1;
q.pop();
}
q.push(k);
}
temp=group;
}
mouse[q.front()].r=1;
for(int i=0;i<np;i++)
{
printf("%d",mouse[i].r);
if(i<np-1)
printf(" ");
}
system("pause");
return 0;
}
PAT 1056
最新推荐文章于 2021-03-06 17:25:19 发布