GitBook

这里写图片描述 这里写图片描述

不使用sort排序的话 就可以统计超过自己的个数 与总个数的一半比较

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node {
	int x;
	char s[10];
} a[120];
int main() {
	int n;
	while(scanf("%d",&n),n!=-1) {
		for(int i=0; i<n; i++) {
			scanf("%d %s",&a[i].x,&a[i].s);
		}
		int cnt[5]= {0};
		for(int i=4; i>0; i--) {
			for(int j=0; j<n; j++) {
				if(a[j].x==i)
					cnt[i]++;
			}
		}
		for(int i=0; i<n; i++) {
			if(a[i].x==5)
				printf("100\n");
			else if(a[i].x==0)
				printf("50\n");
			else {
				int t=0;
				for(int j=0; j<n; j++) {
					if(a[j].x==a[i].x&&strcmp(a[j].s,a[i].s)<0)
						t++;
				}
				if(t>=cnt[a[i].x]/2)
					printf("%d\n",100-(5-a[i].x)*10);
				else
					printf("%d\n",100-(5-a[i].x)*10+5);
			}
		}
		printf("\n");
	}
	return 0;
}

题目地址:【杭电】[1084]What Is Your Grade?