0分求助:5错5超时(Поможешь мне! Спасиба тебе!)
查看原帖
0分求助:5错5超时(Поможешь мне! Спасиба тебе!)
1371856
AK74楼主2024/8/7 11:07
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

long long sum_j[100005];
long long sum_q[100005];
char name_j [100005][12];
char name_q [100005][12];
char temp_name[12];
long long temp_sum;


void paixu_q(int geshu) {//求生者从小到大排序 
	for(int i1=1; i1<geshu; i1++) {
		int i2=i1+1;
		while(i2<=geshu) {
			if(sum_q[i1]>sum_q[i2]) {
				long long ling=sum_q[i1];
				char temp[12];
				for(int i=0;i<=11;i++){
					temp[i]=name_q[i1][i];
				}
				sum_q[i1]=sum_q[i2];
				for(int i=0;i<=11;i++){
					name_q[i1][i]=name_q[i2][i];
				}
				sum_q[i2]=ling;
				for(int i=0;i<=11;i++){
					name_q[i2][i]=temp[i];
				}
			}
			i2++;
		}
	}
	return ;
}
void paixu_j(int geshu) {//监管者从小到大排序 
	for(int i1=1; i1<geshu; i1++) {
		int i2=i1+1;
		while(i2<=geshu) {
			if(sum_j[i1]>sum_j[i2]) {
				long long ling=sum_j[i1];
				char temp[12];
				for(int i=0;i<=11;i++){
					temp[i]=name_j[i1][i];
				}
				sum_j[i1]=sum_j[i2];
				for(int i=0;i<=11;i++){
					name_j[i1][i]=name_j[i2][i];
				}
				sum_j[i2]=ling;
				for(int i=0;i<=11;i++){
					name_j[i2][i]=temp[i];
				}
			}
			i2++;
		}
	}
	return ;
}

int main() {
	int n,m;
	cin>>n>>m;
	int q_ge=0;
	int j_ge=0;
	char schar;
	for(int i=1; i<=n+m; i++) {
		cin>>temp_name>>schar>>temp_sum;
		if(schar=='S') { //录入求胜者
			q_ge++;
			sum_q[q_ge]=temp_sum;
			strcpy(name_q [q_ge],temp_name);
		} else { //录入监管者
			j_ge++;
			sum_j[j_ge]=temp_sum;
			strcpy(name_j [j_ge],temp_name);
		}

	}
	paixu_q(n);//求生者从小到大排序 
	paixu_j(m);//监管者从小到大排序 
	printf("%s\n",name_j [m-2]);//输出监管者 
	
	for(int i=n-5; i>=n-8; i--) {//输出求生者 
		printf("%s %lld\n",name_q [i],sum_q[i]);
	}
	
	return 0;
}

2024/8/7 11:07
加载中...