1109. Group Photo (25)

#include <iostream>
#include <string.h>
#include <algorithm>

using namespace std;

struct node
{
	int height;
	char name[10];
}people[10010];

char res[10010][10];

int cmp(node n1, node n2)
{
	if(n1.height != n2.height)
	{
		return n1.height > n2.height;
	}

	return strcmp(n1.name, n2.name) < 0;
}

int main()
{
	int n, k;
	scanf("%d%d", &n, &k);

	int i;
	for(i = 1; i <= n; i++)
	{
		getchar();
		scanf("%s%d", people[i].name, &people[i].height);
	}

	sort(people + 1, people + n + 1, cmp);

	int m, mid, low, high, index = 1, j;
	for(i = 1; i <= k; i++)
	{
		m = n / k;

		if(i == 1 && n % k > 0)
		{
			m += n % k;
		}

		mid = m / 2 + 1;
		strcpy(res[mid], people[index++].name);

		low = mid - 1;
		high = mid + 1;

		while(low >= 1 || high <= m)
		{
			if(low >= 1)
			{
				strcpy(res[low--], people[index++].name);
			}
			if(high <= m)
			{
				strcpy(res[high++], people[index++].name);
			}
		}

		for(j = 1; j <= m; j++)
		{
			if(j > 1)
			{
				printf(" ");
			}

			printf("%s", res[j]);
		}

		printf("\n");
	}

	system("pause");
	return 0;
}

 

posted on 2025-11-25 09:10  王景迁  阅读(4)  评论(0)    收藏  举报

导航