⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2802146_ac_593ms_468k.cpp

📁 北大大牛代码 1240道题的原代码 超级权威
💻 CPP
字号:
#include <stdio.h>
#include <algorithm>

using namespace std;

int n;
struct node
{
	int mark;
	char name[31];
}stu[10001];
int index[10001];

int cmp(const void *a,const void *b)
{
	node *aa = (node *)a;
	node *bb = (node *)b;

	return strcmp(aa->name,bb->name);
}

int Cmp(const void *a,const void *b)
{
	int aa = *(int *)a;
	int bb = *(int *)b;

	return stu[bb].mark-stu[aa].mark;
}

void report()
{
	while(1)
		puts("I LOVE YOU");
}

int main()
{
	int i, j, m, res, *q, *s, id, rank;
	node tmp, *p;

	scanf("%d",&n);
	getchar();
	for(i = 0; i < n; i++)
		gets(stu[i].name),stu[i].mark = 0;
	qsort(stu,n,sizeof(stu[0]),cmp);
	strcpy(tmp.name,"Li Ming");
	id = (p = (node *)bsearch((const void *)(&tmp),stu,n,sizeof(stu[0]),cmp))-stu;
	scanf("%d",&m);
	for(i = 0; i < m; i++)
	{
		for(j = 0; j < n; j++)
		{
			scanf("%d",&res);
			getchar();
			gets(tmp.name);
			p = (node *)bsearch((const void *)(&tmp),stu,n,sizeof(stu[0]),cmp);
			(*p).mark += res;
			index[j] = j;
		}
		qsort(index,n,sizeof(index[0]),Cmp);
		q = (int *)bsearch((const void *)(&id),index,n,sizeof(index[0]),Cmp);
		if (q==NULL)
			report();
		rank = q-index+1;
		s = q-1;
		while(s+1!=index&&stu[*s].mark==stu[*q].mark)
			s--,rank--;
		printf("%d\n",rank);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -