45分,代码易懂,求调
  • 板块P11185 奖牌排序
  • 楼主linken
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/10/14 15:01
  • 上次更新2024/10/14 19:29:20
查看原帖
45分,代码易懂,求调
1074596
linken楼主2024/10/14 15:01

45分

#include<bits/stdc++.h>
using namespace std;
long long n;
const int N=1e6+10;
long long g[N],s[N],d[N];
bool cmp(int a,int b){
	return a>b;
}
struct pol{
	long long sum;//金 
	long long sum1;//银 
	long long sum2;//铜 
}f[N];
long long sum[5];
int main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld%lld%lld",&g[i],&s[i],&d[i]);
		f[i].sum=g[i];
		f[i].sum1=s[i];
		f[i].sum2=d[i];
	}
	sort(g+1,g+n+1,cmp);
	sort(s+1,s+n+1,cmp);
	sort(d+1,d+n+1,cmp);
	for(int i=1;i<=n;i++){
		memset(sum,0,sizeof sum);
		for(int j=1;j<=n;j++){
			if(f[i].sum==g[j]){
				sum[1]=j;
				break;
			}
		}
		for(int j=1;j<=n;j++){
			if(f[i].sum1==s[j]){
				sum[2]=j;
				break;
			}
		}
		for(int j=1;j<=n;j++){
			if(f[i].sum2==d[j]){
				sum[3]=j;
				break;
			}
		}
		int ans=0x3f3f3f3f;
		for(int i=1;i<=3;i++){
			if(sum[i]<ans){
				ans=sum[i];
			}
		}
		printf("%lld\n",ans);
	}
	return 0;
}
2024/10/14 15:01
加载中...