大佬帮看一下,80分,第一个数据tle了
查看原帖
大佬帮看一下,80分,第一个数据tle了
916027
qew12312楼主2023/8/26 16:36
#include<bits/stdc++.h>
using namespace std;
struct we{
	string s;
	int a,b,c;
	int d;
}a[10000];
struct sw{
	int a,b;
}as[100000];//用来存放是相当对手的序号
int main(){
	int w,aq=0,i,r;
	cin>>w;
	
	sw zx;
	for(i=0;i<w;i++){
		cin>>a[i].s>>a[i].a>>a[i].b>>a[i].c;
		a[i].d=a[i].a+a[i].b+a[i].c;
	}//输入
for(i=0;i<w-1;i++){
	for(r=i+1;r<w;r++){
		if(fabs(a[i].a-a[r].a)<=5&&fabs(a[i].b-a[r].b)<=5
		&&fabs(a[i].c-a[r].c)<=5&&fabs(a[i].d-a[r].d)<=10)
		{
			as[aq].a=i;as[aq].b=r;aq+=1;
	}}}//选择排序来判断,并将序号存入另一个结构体
	aq-=1;
		for(i=0;i<aq;i++){
	for(r=i+1;r<=aq;r++){
	if(as[i].a>as[r].a){
		zx=as[i];
		as[i]=as[r];
		as[r]=zx;
	}//用选排根据字典顺序将存放序号的结构体进行排序
	if(as[i].a==as[r].a&&as[i].b>as[r].b)
	{
		zx=as[i];
		as[i]=as[r];
		as[r]=zx;
	}}}
	for(i=0;i<=aq;i++){
		cout<<a[as[i].a].s<<" "<<a[as[i].b].s<<endl;}//输出
	return 0;
}
2023/8/26 16:36
加载中...