Code: Select all
#include<stdio.h>
#include<string>
#include<string.h>
using namespace std;
#define MAX 52
int pos[MAX+1];
string card[MAX+1];
string placed[MAX+1];
bool flag[MAX+1];
void main()
{
int N,i,j,k,current;
char input[50];
// freopen("C:\\4.txt","r",stdin);
while(scanf("%d",&N)==1 && N)
{
getchar();
for(i=1;i<=N;i++)
{
gets(input);
card[i]=strtok(input," ");
pos[i]=strlen(strtok(NULL," "));
flag[i]=false;
}
current=0;
for(i=1;i<=N;i++)
{
j=current;k=0;
while(k<pos[i])
{
j++;
if(j>N) j%=N;
if(!flag[j]) k++;
else continue;
}
current=j;
placed[j]=card[i];
flag[j]=true;
}
for(i=1;i<=N;i++)
{
if(i==1) printf("%s",placed[i].c_str());
else printf(" %s",placed[i].c_str());
}
putchar('\n');
}
}