2012-12-1多校連試験問題の保証

3094 ワード




Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 72   Accepted Submission(s) : 24
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
くの は の ランキングに を っている. には があるため、 が 35%( を るときは4 5 )で の を えている. 、 の を せて、 が を っているかどうかを できますか?
のテストデータがあり、 グループの の にn(10<=n<=100)を し、この にn の がいることを す. くn は、 に1つの ( は する でスペースを まず、 さは 10で、 じ がないことを する)と1つの ( いに しくない)を む. と の をスペースで る. に、 の に1つの r(r<=10)を し、 くr には、 の のいずれかの を します.この が できれば、 の を します.そうでなければ No.(ランキングは1からカウント).
Sample Input
10
zhangsan 98.00
lisi 99.00 
wangwu 89.00 
dasan 88.00 
xiaosi 78.00 
liuliu 79.00 
hhah 77.00 
jisd 64.00 
ming 72.00 
da 45.00
5
wangwu
jisd
dasan
liuliu
zhangsan

Sample Output
3
No
4
No
2
______________________________________________________
PS.      
 
  
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct{
	char name[15];
	double m;
}men;
int cmp(const void *a,const void*b){
	return (*(men *)b).m-(*(men *)a).m;
}
men ren[101];
int main(){
	int n,n2;
	int i,j;
	char name2[15];
	int total,renshu;
	while(~scanf("%d",&n)){
		total=0;
		for(i=0;i<n;i++){
			scanf("%s%lf",ren[i].name,&ren[i].m);
			total=total+ren[i].m;		
		}
		renshu=(float)((n)*0.35+0.5);
		qsort(ren,n,sizeof(ren[0]),cmp);
		scanf("%d",&n2);
		for(i=0;i<n2;i++){
			scanf("%s",name2);
			for(j=0;j<n;j++){
				if(strcmp(name2,ren[j].name)==0){
					if(j<renshu)
					printf("%d
",j+1); else printf("No
"); } } } } }