1028. List Sorting (25)

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

using namespace std;

struct node
{
	int id, score;
	char name[10];
}stu[100010];

int c;

int cmp(node n1, node n2)
{
	if(c == 1)
	{
		return n1.id < n2.id;
	}
	else if(c == 2)
	{
		if(strcmp(n1.name, n2.name) != 0)
		{
			return strcmp(n1.name, n2.name) < 0;
		}
	}
	else
	{
		if(n1.score != n2.score)
		{
			return n1.score < n2.score;
		}
	}

	return n1.id < n2.id;
}

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

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

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

	for(i = 1; i <= n; i++)
	{
		printf("%06d %s %d\n", stu[i].id, stu[i].name, stu[i].score);
	}

	system("pause");
	return 0;
}

 

posted on 2025-11-23 17:00  王景迁  阅读(5)  评论(0)    收藏  举报

导航