一半TLE,50分,不知道怎么改
查看原帖
一半TLE,50分,不知道怎么改
1248957
qjyyy楼主2023/12/28 14:07
#include<stdio.h>
#include<string.h>
struct sum{
	char name[100];
	char place;
	int profi;
};
struct survivor{
	char name[100];
	char place;
	int profi;
};

struct hunter{
	char name[100];
	char place;
	int profi;
};

int main()
{
	long m,n;
	char a[100];
	char b;
	int c;
	int k=0;
	int p=0;
	int i,j;
	scanf("%ld %ld",&n,&m);
	struct survivor survivors[n+1];
	struct hunter hunters[m+1];
	struct sum sums[m+n];
	for(i=1;i<=m+n;i++){
		scanf("%s %c %d",&sums[i-1].name,&sums[i-1].place,&sums[i-1].profi);
		if(sums[i-1].place=='S'){
			strcpy(survivors[k].name,sums[i-1].name);
			survivors[k].place=sums[i-1].place;
			survivors[k].profi=sums[i-1].profi;
			k++;
		}
		if(sums[i-1].place=='H'){
			strcpy(hunters[p].name,sums[i-1].name);
			hunters[p].place=sums[i-1].place;
			hunters[p].profi=sums[i-1].profi;
			p++;
		}
	}
	int num;
	for(i=0;i<n-1;i++){
		int max=survivors[i].profi;
		num=i;
		survivors[n].profi=0;
		for(j=i+1;j<n;j++){
			if(survivors[j].profi>max){
				num=j;
				max=survivors[j].profi;
			}
		}
		survivors[n]=survivors[i];
		survivors[i]=survivors[num];
		survivors[num]=survivors[n];
	}
	for(i=0;i<m-1;i++){
	    int max=hunters[i].profi;
	    num=i;
     	hunters[n].profi=0;
    	for(j=i+1;j<m;j++){
		    if(hunters[j].profi>max){
				num=j;
				max=hunters[j].profi;
			}
		}
		hunters[m]=hunters[i];
		hunters[i]=hunters[num];
		hunters[num]=hunters[m];
	}
	printf("%s\n",hunters[2].name);
	for(i=5;i<=8;i++){
		printf("%s\n",survivors[i].name);
	}
	return 0;
 } 
2023/12/28 14:07
加载中...