随便整点
2026-08-07 18:23:23
发布于:辽宁
25阅读
0回复
0点赞
这辈子只能做sort了呜呜呜
先这样在那样就行
言归正传 先定义个结构体(我是“给”)里面有个求和,最大最小值和编号,2个for一个n一个k,在内层输入那一堆价格(价格外层可以定义数组)顺便把最大最小还有总价求出,然后整个排序函数,具体看下面
struct l
{
int h,maxx,minn,x;
};
l t[1006];
bool cmp(l j,l k)
{
if(j.h!=k.h)return j.h<k.h;
else if(j.maxx!=k.maxx)return j.maxx<k.maxx;
else if(j.minn!=k.minn)return j.minn<k.minn;
else return j.x<k.x;
}
用个sort在输出编号就行,代码如下
//点个赞呗
//点个赞呗
//点个赞呗
//**点个赞呗**
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
//点个赞呗
#include <bits/stdc++.h>
using namespace std;
struct l
{
int h,maxx,minn,x;
};
l t[1006];
bool cmp(l j,l k)
{
if(j.h!=k.h)return j.h<k.h;
else if(j.maxx!=k.maxx)return j.maxx<k.maxx;
else if(j.minn!=k.minn)return j.minn<k.minn;
else return j.x<k.x;
}
int main()
{
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
int t2[19];
t[i].minn=888888;
for(int j=1;j<=k;j++)
{
cin>>t2[j];
t[i].h+=t2[j];
t[i].maxx=max(t[i].maxx,t2[j]);
t[i].minn=min(t[i].minn,t2[j]);
}
t[i].x=i;
}
sort(t+1,t+n+1,cmp);
for(int i=1;i<=n;i++)cout<<t[i].x<<" ";
return 0;
}
这里空空如也



有帮助,赞一个